如何绑定jukito中的最终类模拟?
例如:
public final class SomeFinalClass(){
public SomeFinalClass(String someString){
}
}
//测试类
@Runwith(JukitoRunner.class)
public class TestingClass(){
@Inject
private SomeFinalClass someFinalClassMock;
public static class TestModule extends JukitoModule {
@Override
protected void configureTest() {
// bind(SomeClient.class).in(TestSingleton.class);
}
@Provides
public SomeFinalClass getSomkeFinalClass() {
return Mokito.mock(SomeFinalClass.class); //throws error
}
}
}
有没有一种方法可以将PowerMockito与Jukitorunner使用?
,如果您使用的莫科托2。
嘲笑最终类和方法是一种孵化的选择加入功能。它结合了Java代理仪器和子类别,以实现这些类型的可见性。由于这与我们当前的机制有所不同,并且该机制具有不同的限制,并且我们想收集经验和用户反馈,因此必须明确激活此功能才能可用;可以通过创建包含单个行的文件src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
来通过Mockito扩展机制完成:mock-maker-inline
。
创建此文件后,Mockito将自动使用此新引擎,并且可以这样做:
final class FinalClass {
final String finalMethod() { return "something"; }
}
FinalClass concrete = new FinalClass();
FinalClass mock = mock(FinalClass.class);
given(mock.finalMethod()).willReturn("not anymore");
assertThat(mock.finalMethod()).isNotEqualTo(concrete.finalMethod());