这是我第一次尝试使用jmockit。我有一个gradle项目(春季启动)。确保jmockit是测试类路径中的第一个。
compile "net.bytebuddy:byte-buddy:1.4.5"
testCompile "org.jmockit:jmockit:1.8"
testCompile "org.springframework.boot:spring-boot-starter-test"
然后我想伪造一个TranslatorFactory
,以便它返回假的Translator
。
TranslatorFactory类类似于
public class TranslatorFactory {
public ArgTranslator getTranslator(Class<?> aClass) {
return new ArgTranslator() {
@Override
public Object translate(String arg) {
return "Real translation " + arg;
}
};
}
}
我的测试类注释了@RunWith(JMockit.class)
@Test
public void testTranslatorFactory() {
new MockUp<TranslatorFactory>() {
public ArgTranslator getTranslator(Class<?> baseClass) {
return new MockUp<ArgTranslator>() {
public Object translate(String arg) {
return "Fake translation " + arg;
}
}.getMockInstance();
}
};
assertEquals("Fake translation something", new TranslatorFactory().getTranslator(String
.class).translate("something"));
}
但我似乎没有让这个工作。测试总是失败。 (在IntelliJ中运行)
org.junit.ComparisonFailure:
Expected :Fake translation something
Actual :Real translation something
非常感谢任何帮助/指示。