它看起来像hamcrestorg。汉克雷斯特。Matchers类与org类非常相似。汉克雷斯特。CoreMatchers
(尽管看起来,Matchers
还有更多)。为什么我会选择使用CoreMatchers
(除了看起来类稍微小一点之外),为什么这两个类如此相似?
如果使用Android的JUnit测试(非连接测试),CoreMatcher
s似乎在已经包含的JUnit模块中可用,而matcher
则不可用。
因此,为了节省开销,并避免导入另一个库,如果使用这些类,请考虑使用<代码> CoreMatcher < /代码>版本。
assertThat(chrome.twiddle(), is(equalTo(0)));
只能使用CoreMatcher
s。
如果您像我一样经常使用Mockito,您可能会:
import org.mockito.Mockito;
或
static import org.mockito.Mockito.*;
由于Mockito
类扩展了Mockito的Matcher
类,那么您最终可能会在Matcher类或其静态方法之间产生冲突。有了CoreMatcher,我就可以在与Mockito相同的类中使用JUnit派生的CoreMatcher,而不必在它们的使用点对它们进行完全限定。
Hamcrest匹配器分为几个模块。“核心”包括构建其他匹配器所需的最基本的匹配器和抽象类<代码>组织。汉克雷斯特。CoreMatchers仅包括这些匹配器的出厂方法。其他匹配器位于“库”模块中,按匹配对象的类型分组,是可选的<代码>组织。汉克雷斯特。匹配器包括两组匹配器。
你应该用哪一种?我静态地从后者导入所有内容,没有任何问题。也许编译时间会稍微长一点,但这对我来说从来都不是问题。除了JUnit导入之外,我还将其放在单元测试的顶部:
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
这使测试方法具有最佳可读性。
我的问题是:这是一个bug还是我遗漏了什么? 事实上,不同的匹配器以不同的格式返回消息是一个很大的问题,因为我试图编写一些自定义的验证框架,该框架使用匹配器,并且能够在出现任何错误时返回良好的人类可读的消息。我似乎不能为此目的使用方法...
我想在TestNG测试中使用Hamcrest匹配器,特别是软断言。我怎么能这么做?我知道我可以在测试中使用Hamcrest的断言,例如:
问题内容: 做一个简单的测试时,我就在用Java编写正则表达式 但是在JavaScript中 这里发生了什么?我可以使我的Java regex模式“ q”的行为与JavaScript相同吗? 问题答案: 在JavaScript中,返回与使用的正则表达式匹配的子字符串。在Java中,检查整个字符串是否与正则表达式匹配。 如果要查找与正则表达式匹配的子字符串,请使用Pattern和Matcher类,例
对于类; 我正在构建这样的自定义Matcher; 检查列表是否包含
我试图使用org.hamcrest.matchers.contains(java.util.list >),但是编译器告诉我它无法解析该方法。 我甚至尝试了Hamcrest在这里给出的示例,但得到了相同的编译错误: 但随后我得到了另一个编译错误: 有没有办法恰当地使用这种方法?
我可以使用哪种匹配器? { test: /\.js$/, loader: 'babel-loader' } - Matches just .js { test: /\.(js|jsx)$/, loader: 'babel-loader' } - Matches both js and jsx Generally put it's just a JavaScript regex so standar