【发布时间】:2017-09-27 04:32:11
【问题描述】:
我不知道是否已回答,我发现了一些类似的问题,但答案对我来说没有任何意义。所以,我再问一遍。
我们如何测试 Activity 中的方法。
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//inflate layout
}
public int someMethod() {
//perform some logic and return an integer
}
}
我想对方法someMethod 进行单元测试,但我该怎么做,因为我无法创建活动的实例并直接调用该方法。被测方法不使用任何 android 组件,因此我不想使用 Roboelectric 或任何其他此类库或工具。这是一个普通的java方法。
我知道的一种方法是将方法移动到另一个类并对该类进行单元测试,我对此非常满意,但我想知道这是否是正确的方法,(为此目的创建一个单独的类),或者有其他方法吗?
感谢您的任何反馈。
【问题讨论】:
-
有了你不想使用 Roboelectric、Espresso 等的约束,那么你需要将它从 Activity 中重构出来。
-
那么绝对没有办法做到这一点,而不必创建一个不同的类?
-
运行活动的 Espresso 活动规则。然后你就可以在上面调用函数了。
标签: java android unit-testing