Closed liranGG closed 2 years ago
import static com.alibaba.testable.core.tool.TestableTool.MOCK_CONTEXT;
public class TestFather {
public void commonTest(Map mockContext) { mockContext.put("11", "22"); } public void commonTest() { MOCK_CONTEXT.put("11", "22"); }
}
public class TestSon extends TestFather {
public static class Mock { } @Test public void testSomething() { commonTest(MOCK_CONTEXT); // 父类无法直接使用MOCK_CONTEXT,报空指针,必须传参才行或者在本类通用方法里可直接使用 // commonTest(); }
如上所示,我把单测通用代码提炼到父类中,无法直接使用MOCK_CONTEXT,只能把通用方法放在本类里才能直接使用,或者传参。和上一个Issues一样,debug全程MOCK_CONTEXT显示null。望尽快修复这两个Issues,这样编写代码更方便,不用再传参传来传去。能不能修请早点告知我一声,别不吱声修好了突然回复我。
Debug全程MOCK_CONTEXT显示null是因为IDE在Debug过程里展示的依然是发生动态替换前的代码,同时由于动态替换需要扫描字节码,有一定开销,默认只会对测试类进行自动处理。
MOCK_CONTEXT
解法同前一个问题,使用MockContextUtil.parameters()调用替代MOCK_CONTEXT变量即可。
MockContextUtil.parameters()
import static com.alibaba.testable.core.tool.TestableTool.MOCK_CONTEXT;
public class TestFather {
}
public class TestSon extends TestFather {
}
如上所示,我把单测通用代码提炼到父类中,无法直接使用MOCK_CONTEXT,只能把通用方法放在本类里才能直接使用,或者传参。和上一个Issues一样,debug全程MOCK_CONTEXT显示null。望尽快修复这两个Issues,这样编写代码更方便,不用再传参传来传去。能不能修请早点告知我一声,别不吱声修好了突然回复我。