[英]JUnit Local Test - Android Context 'No instrumentation registered!'
[英]Android Junit test local final variables
我的MyClass.java中有以下代码:变量“ C”已添加。
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final MyLocalClass mlc = new MyLocalClass(A, B, C);
}
}
我想进行Junit测试:获取“ mlc”的实例,然后获取“ mlc”中的“ C”并进行比较。
final Activity activity = getActivity();
Field field = MyClass.class
.getDeclaredField("mlc");
field5.setAccessible(true);
final MyLocalClassinstance = (MyLocalClass) field5
.get(activity );
但是来自操作系统的错误:
junit.framework.AssertionFailedError: java.lang.NoSuchFieldExceptio
我可以获取局部最终变量的实例吗?
非常感谢你。
您无法按照@Yam Marcovic的解释进行操作。
但是您可以方便地更改代码以使其可测试:
我会将mlc
设置为Activity的局部变量,而不是像这样的匿名OnClickListener处理类的局部变量
public class MyActivity : Activity {
public MyLocalClass mlc;
public void Init() {
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mlc = new MyLocalClass(A, B, C);
}
}
}
}
这很容易测试
MyActivity activity = (MyActivity) getActivity();
// assert on activity.mlc.C
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.