【发布时间】:2017-09-06 19:54:43
【问题描述】:
我想集成 powermock 来测试 firebase 逻辑。我尝试运行测试并得到了这个:
java.lang.NoClassDefFoundError: org/mockito/cglib/proxy/MethodInterceptor
这是我的 app.gradle:
testCompile 'junit:junit:4.12'
testCompile "org.powermock:powermock-module-junit4:1.7.0"
testCompile "org.powermock:powermock-module-junit4-rule:1.7.0"
testCompile "org.powermock:powermock-api-mockito:1.7.0"
testCompile "org.powermock:powermock-classloading-xstream:1.7.0"
testCompile "org.robolectric:robolectric:3.4.2"
testCompile 'org.mockito:mockito-core:2.1.0'
这是我的测试:
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)
@PowerMockIgnore({ "org.mockito.*", "org.robolectric.*", "android.*" })
@PrepareForTest({FirebaseAuth.class, FirebaseDatabase.class})
public class LoginTest {
@Before
public void setUp() {
PowerMockito.mockStatic(FirebaseAuth.class);
Mockito.when(FirebaseAuth.getInstance()).thenReturn(Mockito.mock(FirebaseAuth.class));
}
@Test
public void test() {
}
}
【问题讨论】:
-
能用powermock支持的最新版mockito吗?例如
testCompile 'org.mockito:mockito-core:2.8.9' -
另外,将
finalFirebase 类包装在您自己的非最终接口中是比使用 Powermock 更好的解决方案
标签: java android mockito powermock robolectric