我正在使用junit和mokito编写Java程序的单元测试。
public MyClass {
private ClassA a;
public void process(ClassB b) {
if(b.method()) a = ClassA.builder().build();
}
}
现在我已经写了一个MockClassA和MockClassB。但是我不知道怎么做:
将MockClassB实例传递给过程函数
如何验证私有变量a是否设置成功
有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用类似的内容:
@Test
public void shouldDoSomething() {
// given
ClassB mock = Mockito.mock(ClassB.class);
Mockito.when(mock.method()).thenReturn(true);
MyClass classUnderTest = new MyClass();
// when
classUnderTest.process(mock);
// then
// Insert assertions
}
但是,如果您的字段是私有的,则无法正确测试。如果要对此字段进行断言,则应为此字段提供一个吸气剂。
但是请记住,MyClass
的内部表示形式不应进行测试,而应仅对其行为进行测试,因此也许您想尝试其他方法