我对Mockito有问题。我有两个不同的班级。我的目的是测试“ setChanges”功能。这是我的第一堂课:
class M {
private String a;
private String b;
private boolean c = false;
public String getA() {
return a;
}
public void setA( String _a ) {
a = _a;
}
public String getC() {
return c;
}
public void setC( final boolean imp ) {
c = imp;
}
}
这是具有“ setChanges”功能的主类:
class MyMainClass {
private String getMyA() {
return "Data";
}
private static void setChanges(final M m) {
if (getMyA().equals(m.getA())){
m.setC(true);
}
}
}
如何测试“ setChanges”?这意味着如果getA()返回“数据”,如何检查应为“ true”的getC()?
答案 0 :(得分:0)
谢谢,它与以下代码兼容:
@Test
public void testsetChanges(){
MyMainClass mmc = new MyMainClass ();
M m = new M();
m.setA("Data");
Method method = MyMainClass.class.getDeclaredMethod(
"setChanges",
M.class
);
method.setAccessible(true);
method.invoke(method, m );
assertTrue(m.getC());
}
答案 1 :(得分:-1)
传入M
满足(或不满足)getMyA
的实例,并验证M#getC
返回true
(或false
,具体取决于关于您正在测试的内容)。无需模拟。