2016-06-17 5 views
0

На http://www.artima.com/weblogs/viewpost.jsp?thread=246279 я обнаружил, что следующие утверждения должны работать:Строка включает утверждение без скобок с ScalaTest Matchers

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', как вы можете видеть в сообщении об ошибке, она не на первом утверждении уже. Я думаю, вы должны использовать 'string, должен начинать с подстроки (« Hello ») и т. Д. –

+0

С круглыми скобками я получаю ту же ошибку, это не помогает –

ответ

2

На самом деле нет такой вещи, как substring, разрешенное после include или других совпадений строк в текущих версиях Scalatest. Возможно, статья, о которой вы упоминаете, описывала очень старую версию библиотеки. Вы можете либо пойти на

string should include("Hello") 

для соответствия подстроки или

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

для сравнения регулярных выражений.

И отвечая на вопрос о ваших круглых скобках - Scalatest DSL ограничен в этом аспекте, что без скобок могут быть записаны только выражения, состоящие из нечетного количества подвыражений.

Таким образом, следующие два утверждения:

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

 Смежные вопросы

  • Нет связанных вопросов^_^