我正在尝试为我的应用程序编写一些单元测试,以验证我的测试类是否正在使用应用程序配置的属性。
我们使用OWNER作为我们的属性解析,并使用JMockit作为我们的模拟框架。
我要上课的课程:
public class TestMe {
private final MyAppConfig config = ConfigFactory.create(MyAppConfig.class);
public void doStuff() {
String someValue = config.getSomeValue();
...
}
}
和我的测试班:
public class TestMeTest {
@Tested
TestMe testMe;
@Test
public void doStuffShouldUseTheConfiguredSomeValue(@Mocked ConfigFactory configFactory, @Mocked MyAppConfig myAppConfig) {
new Expectations() {{
ConfigFactory.create(MyApp.class); result = myAppConfig;
myAppConfig.getSomeValue(); result = "foo";
}};
testMe.doStuff();
new Verifications() {{
myAppConfig.getSomeValue(); times = 1;
}};
}
}
然而,当我运行测试时,我的模拟ConfigFactory.create()没有被调用,并且JUnit报告:
Missing 1 invocation to:
org.aeonbits.owner.ConfigFactory#create("interface MyAppConfig", [])
有人可以举例说明模拟OWNER配置对象的正确方法吗?