我试图在groovy中做一些断言,我发现Java允许你检查字符串是否包含某个值,见下文:
String longText;
String uan;
Assert.assertThat(longText, CoreMatchers.containsString(uan));
使用以下导入:
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
但是,groovy似乎不喜欢它并且抛出错误"Missing Property Exception, No such property: Asset for class
有谁知道如何使用assert检查字符串是否包含Groovy中的值?
修改
完整代码:
def uan = "123"
String fileName = "C:\\Users\\xxx\\Desktop\\checklogs.txt";
def logs = faker.ivacsLogExtract().getMessages(fileName,uan );
Assert.assertthat(logs, CoreMatchers.containsString(uan));
答案 0 :(得分:0)
问题是原始代码导入静态方法,但后来尝试以常规方式使用它们(例如Assert.assertThat
)。相反,请尝试此操作(例如assertThat
。请参阅代码中的评论):
修改已移除@Grab
,因为它令人困惑
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.containsString;
String longText = "abcdefijk";
String uan = "def";
// use methods without context:
assertThat(longText, containsString(uan));
答案 1 :(得分:0)
我通过这样做得到了它:
断言longText.contains(uan)