我是新手使用hamcrest.当我发现如何使用它时,我一直怀疑何时使用is或equalTo.
有什么区别is和equalTo,虽然它在概念上还是ocasionally?它似乎行为相同.
Assert.assertThat(actual, equalTo("blue"));
Assert.assertThat(actual, is("red"));
Run Code Online (Sandbox Code Playgroud)
为什么你会使用一个而不是另一个?
sli*_*lim 14
Javadoc Matchers非常清楚.is在所有重载形式中都有表现力.
"主要" is是is(Matcher<T> matcher):
装饰另一个Matcher,保留其行为,但允许测试更具表现力.
例如:
Run Code Online (Sandbox Code Playgroud)assertThat(cheese, is(equalTo(smelly)))代替:
Run Code Online (Sandbox Code Playgroud)assertThat(cheese, equalTo(smelly))
is(T value) 是:
常用的快捷方式
is(equalTo(x)).
允许 assertThat(cheese, is(smelly))
......并且is(java.lang.Class<T> type)是:
常用的快捷方式
is(instanceOf(SomeClass.class)).
允许 assertThat(cheese, is(DairyFood.class))
...但是这被弃用了isA(DairyFood.class).
这可以归结为那个is(foo)和equalTo(foo)他们的行为完全相同,只要foo既不是a Matcher也不是a Class.您应该使用您认为最清楚地传达您的意图的任何一种.
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |