2016-06-17 123 views
0

http://www.artima.com/weblogs/viewpost.jsp?thread=246279我發現以下斷言應該工作:字符串包括不與ScalaTest匹配器括號斷言

string should startWith substring "Hello" 
string should endWith substring "world" 
string should include substring "seven" 

然而,這並不編譯

Error:(15, 29) value substring is not a member of MyTest.this.ResultOfStartWithWordForString 
    string should startWith substring "Hello" 

是否有可能寫字符串包含斷言而不使用括號?

+0

你的問題不是'include',問題是'substring',你可以在錯誤信息中看到,它失敗的第一個斷言已經。我認爲你必須使用'字符串應該startWith子字符串(「你好」)等 –

+0

括號我得到同樣的錯誤,它並沒有幫助 –

回答

2

事實上,在include或其他當前版本的Scalatest中的字符串匹配器之後,不允許substring這樣的東西。也許你提到的文章描述了一個非常舊的版本庫。 您可以去

string should include("Hello") 

的子串匹配或

string should include regex("Hello\\s+") 

的正則表達式匹配。

並回答你的括號問題 - Scalatest DSL在這方面是有限的,只有由奇數量的子表達式組成的表達式可以不帶括號寫入。

因此,下面的兩個斷言是有效的:

string should include("Hello") 
string should not include "Hello"