有没有办法手动使Espresso测试失败?
比如说,我想要比较两个 int
类型的值,并在它们不匹配时使测试失败:
@Test
public void testTwoInts() {
int var1 = mActivityTestRule.getActivity().var1;
int var1 = mActivityTestRule.getActivity().var2;
if(var1 != var2)
fail();
}
有没有办法手动使Espresso测试失败?
比如说,我想要比较两个 int
类型的值,并在它们不匹配时使测试失败:
@Test
public void testTwoInts() {
int var1 = mActivityTestRule.getActivity().var1;
int var1 = mActivityTestRule.getActivity().var2;
if(var1 != var2)
fail();
}
Espresso基于JUnit构建,因此您可以在其中使用JUnit断言。这使得您打算做什么变得更加清晰明了。在这种情况下,请执行import static org.junit.Assert.assertTrue
,然后在您的测试中执行。
@Test
public void testTwoInts() {
int var1 = mActivityTestRule.getActivity().var1;
int var1 = mActivityTestRule.getActivity().var2;
assertEquals(var1,var2);
}
如果你真的想手动处理它(不推荐),JUnit提供了同一类中的失败方法。导入static org.junit.Assert.fail
,然后使用任何版本的失败方法(一个没有参数,一个带有解释失败原因的字符串)。这里你可以这样做:
@Test
public void testTwoInts() {
int var1 = mActivityTestRule.getActivity().var1;
int var1 = mActivityTestRule.getActivity().var2;
if(var1 != var2)
fail("The integers are not equal");
}
@RunWith(AndroidJUnit4.class)
?)。Espresso只是为了处理视图等内容而添加了许多断言、规则和其他JUnit工具。所有与JUnit相关的内容都可用(包括Hamcrest匹配器,如果你需要更复杂的断言 - 实际上,这就是Espresso的一部分)。我认为Espresso文档没有清楚地解释这一点。 - Matthew@Rule
和@Test
。 - the_proleandroid.support.test.runner.AndroidJUnitRunner
)?如果你查看Espresso的设置说明,你会发现在几个地方都提到了JUnit。 - MatthewdefaultConfig
块中声明了testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
。 - the_prole