如何测试这些修改模拟成员函数? [重复]

问题描述 投票:0回答:2

这个问题已经在这里有一个答案:

我有一个的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(),应该是“真”?

java unit-testing testing junit mocking
2个回答
0
投票

谢谢,它的工作原理与此代码:

@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());

}


-1
投票

通过在M满足其中的一个实例(或不符合)getMyA和验证M#getC回报true(或false,这取决于你正在测试什么)。无需嘲笑。

© www.soinside.com 2019 - 2024. All rights reserved.