【发布时间】:2022-01-31 13:01:25
【问题描述】:
我已经模拟了另一个类方法,它在生产中被调用,比如 new B().somemethod (arg) 有返回类型 void 和 newD().anymenthod() 它有返回类型 inputstream
在测试方法中,我在做mocking Like donothing().when(b). somemethod ();
和
When(d.anymehod()).thenreturn(inputstream);(here inputstrem i am providing)
这里我已经做了@Mock B b;
@Mock D d;
这里我的测试用例运行成功,但当时也调用了模拟方法。
这里我不想改变生产代码,只有测试用例实现可以改变。
class TestSystem {
@InjectMock
System sys;
@Mock
B b;
@Mock
D d;
@BeforeEach
void setup() {
MockitoAnnotation.openMocks(this);
}
@Test
testModule() {
InputStrem input = null;
when(d.anymethod()).thenReturn(inputStrem);
doNothing().when(b).somemethod();
sys.module();
}
Class System{
public void module() {
//some code .....
new B().somemethod();
inputStrem = new D().anymethod(value);
}
Class B {
public void somemethod(){
//some code .....
}
}
Class D {
public InputStrem anymethod() {
//some code ......
}
}
【问题讨论】:
标签: java unit-testing junit mockito junit5