我想测试我的 android 应用程序的一个用例(场景)。它应该模拟用户对应用程序的使用。编写一个测试方法和代码测试整个用例是否更好,还是我应该为每个部分创建单独的方法(在这种情况下,测试必须按特定顺序进行)?
例子:
public void test() {
//click or button (open new activity)
//check if activity is opened
//open firm selection (open new activity)
....
}
或
public void test1(){
//click or button (open new activity)
//check if activity is opened
}
public void test2(){
//open firm selection (open new activity)
}
...
public void testX(){
//file at the end is created
}
什么是更好的方法,为什么?
最佳答案
你写的好像是UI用户场景测试。
严格来说,这不是单元测试,所以你不应该试图在不同的测试方法中人为地拆分处理。
这样做会出错,因为每个测试方法都会更新应用程序的状态,并且可能依赖于先前测试所做的更改。您会得到必须按特定顺序进行的耦合测试,第一个测试的更改会对其他测试产生影响。
例如,第三个执行的测试可能会因为第一个或第二个或两者的链接而失败。怎么猜到这种事?
因此,通过不同的用户故事/用例实例定义单一测试方法似乎确实是正确的方式,并且让事情变得更清晰。
The basic Espresso example在他们的网站上是这样的:
@Test
public void greeterSaysHello() {
onView(withId(R.id.name_field)).perform(typeText("Steve"));
onView(withId(R.id.greet_button)).perform(click());
onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}
关于java - 测试用例(场景)——一种还是多种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51242929/