gpt4 book ai didi

java - 我需要 Matcher containsString(Matcher matcher),我做错了什么吗?

转载 作者:行者123 更新时间:2023-11-29 03:15:46 33 4
gpt4 key购买 nike

我想检查一个字符串是否包含另一个字符串,忽略大小写。基本上,我想这样做:

assertThat(dialogTitle.getText(), containsString(equalToIgnoringCase("Diagram")));

但我找不到 Matcher<String>需要另一个 Matcher<T> .是否有不同的方法来实现这一目标?

最佳答案

您可以通过从 org.hamcrest.core 包扩展 SubstringMatcher 来实现您自己的匹配器:

public class StringContainsIgnoringCase extends SubstringMatcher {
public StringContainsIgnoringCase(String substring) {
super(substring);
}

@Override
protected boolean evalSubstringOf(String s) {
return s.toLowerCase().contains(substring.toLowerCase());
}

@Override
protected String relationship() {
return "containing (ignoring case)";
}

public static Matcher<String> containsStringIgnoringCase(String substring) {
return new StringContainsIgnoringCase(substring);
}

}

用法:

assertThat(dialogTitle.getText(), StringContainsIgnoringCase.containsStringIgnoringCase("Diagram"));

为了可读性,你当然可以进行静态导入,你会得到:

assertThat(dialogTitle.getText(), containsStringIgnoringCase("Diagram"));

您要的匹配器已经在master branch of the JavaHamcrest project 中了不幸的是,它不在最新版本的 Hamcrest (1.3) 中。

关于java - 我需要 Matcher<String> containsString(Matcher<String> matcher),我做错了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762099/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com