【发布时间】:2020-04-21 13:25:55
【问题描述】:
我在我的测试类 testObj 中创建了一个对象,mockDao 是我模拟的一个 dao 对象。
要测试的函数类似于:
MyDao myDao;
String myFunc(String param1, String param2) {
MyObj realObj = new MyObj("param1", "param2");
return myDao.someFunction(realObj);
}
UnitTest 类类似于:
@Mock
MyDao mockDao;
@InjectMock
MyComponent component;
MyObj testObj = new MyObj("param1", "param2");
@Test
public void test() {
Mockito.when(mockDao.someFunction(testObj)).thenReturn(“123”);
String returnedValue = component.myFunc("param1","param2");
Assert.assertEquals(returnedValue, "123");
}
这不应该在我的实际类中注入“123”,因为在实际类中创建的对象 (realObj) 与 testObj 不同。
但是,这是注入“123”,我的测试通过了。虽然理想情况下它应该失败。
这种注入怎么可能发生?
【问题讨论】:
-
显示此类
MyObj等于和哈希码在此类中被覆盖?
标签: java unit-testing testing mocking mockito