java EasyMock如何模拟私有对象实例化和变量
我有下面的类要用模拟私有对象创建来测试
class TestClass {
private Dialog dialog;
private DialogChangeListener listener = new DialogChangeListener() {
public void onChange(Event e) {
String v = e.getValue();
if (condition1) {
// perform operation 1
} else if (condition2) {
// perform operation 2
} else if (condition3) {
// perform operation 3
}
}
}
public void openDialog() {
if (condition1) {
dialog = new Dialog(arg1, arg2, listener);
} else if (condition2) {
dialog = new Dialog(arg1, arg2, arg3, listener);
} else if (condition3) {
dialog = new Dialog(arg1, arg2, arg3, listener);
}
}
}
在上面的场景中,如何使用EasyMock模拟私有“Dialog”变量及其实例化以及私有“listener”变量,以便在有条件的基础上继续其余操作
# 1 楼答案
我的答案有三个部分
首先,不能用EasyMock模拟属性和实例化。这些情况很少需要,这意味着您应该重构
其次,PowerMock可以模拟实例化。它很强大,但我自己从来没有用过
第三,就你而言
代码示例:
然后测试: