【发布时间】:2018-03-22 17:26:22
【问题描述】:
mockito-1.10.19 powermock-mockito-1.7.1
powermock-1.7.4
junit 4.12
我有一个有多个构造函数的类 (java)。一旦构造函数调用另一个。我只想模拟 1 个构造函数(从另一个调用的构造函数)。不幸的是,我无法更改代码 - 我只是在测试它。这是要测试的类:
import java.io.File;
import java.sql.connection;
public class Foo {
public Foo (Connection connection){
this(connection, new File ());
}
public Foo (Connection connection, File file){
// do stuff
}
// other methods
}
这是我写的测试类:
import java.io.File;
import java.sql.connection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Matchers;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.legacy.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(Foo.class)
@PowerMockIgnore("javax.management.*")
public class FooTest {
@Test
public void testFoo() throws Exception {
Connection mockConnection = Mockito.mock(Connection.class);
Foo fooObj = Mockito.mock(Foo.class);
PowerMockito.whenNew(Foo.class).withArguments(Matchers.notNull(), Matchers.notNull()).thenReturn(fooObj);
Foo newFooObj = new Foo (mockConnection);
assertNotNull ("newFooObj should not be null", newFooObj);
}
}
问题是没有输入 Foo(Connection)。有什么我遗漏的吗?
【问题讨论】:
标签: mockito powermock powermockito