我正在尝试为类的特定方法编写单元测试 - foo
. 此类扩展了另一个类 - bar
,它位于外部 jar 中。
问题是这个基础bar
有一些与数据库交互的方法,我不想实际调用它们。
我尝试创建这个基类 foo 的模拟,但这不起作用。它实际上尝试连接到数据库而不是模拟。
@Test
public void testSomeMethod(){
bar b= mock(bar.class);
when(b.calldatabase()).thenReturn(resultset); //calldatabse is in base class bar
//create expected object, and set properties here
Results expected = new Results();
expectedResult = foo.MethodUnderTest(); // this has call to calldatabase and then uses resultset mocked above
assert()...
}
我正在将 JUnit4 与 Mockito 一起使用。
真的有可能像这样 - 在基类中模拟方法但实际测试派生类吗?如果没有,我该如何测试?
如果需要,我可以更改基类,并根据需要使用任何其他工具/库。