这个问题已经在这里有一个答案:
我有一个的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”?这意味着如果木屐()返回“数据”,我怎么能检查GETC(),应该是“真”?
谢谢,它的工作原理与此代码:
@Test
公共无效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());
}
通过在M
满足其中的一个实例(或不符合)getMyA
和验证M#getC
回报true
(或false
,这取决于你正在测试什么)。无需嘲笑。