Tôi đang cố gắng sử dụng PowerMock để thử một số lớp được sử dụng trong thử nghiệm ứng dụng Android của chúng tôi (ví dụ BluetoothSocket).VerifyError với PowerMock trên Android
Tôi đã tải xuống tệp zip trên trang mã của Google PowerMock với tất cả các phụ thuộc và thêm chúng vào dự án thử nghiệm Android của tôi (bao gồm cả đường dẫn xây dựng).
Tuy nhiên khi tôi cố gắng sử dụng PowerMock như thế này:
@RunWith(PowerMockRunner.class)
@PrepareForTest(NetworkUtil.class)
public class TestSendAck extends TestCase{
@Test
public void testGenerateURL() {
PowerMock.mockStatic(NetworkUtil.class);
EasyMock.expect(NetworkUtil.getLocalHostname()).andReturn("triumph");
PowerMock.replayAll();
PowerMock.verifyAll();
}
}
tôi nhận được stack trace sau:
java.lang.ExceptionInInitializerError
at org.easymock.internal.ClassProxyFactory.createEnhancer(ClassProxyFactory.java:249)
at org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:159)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:59)
at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:2212)
at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2163)
at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:287)
at se.metrima.mafield.test.TestSendAck.testGenerateURL(TestSendAck.java:19)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
Caused by: java.lang.VerifyError: net.sf.cglib.core.ReflectUtils
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:166)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
... 19 more
tôi chỉ nhận được lỗi này khi chạy dự án thử nghiệm như một JUnit thử nghiệm Android , nếu tôi chạy nó như một công cụ kiểm tra JUnit thông thường, nhưng sau đó tất cả các thử nghiệm của tôi cần khung Android tự nhiên không thành công.
Tôi làm cách nào để giải quyết vấn đề này? Tôi rất mới để thử nghiệm đơn vị vì vậy tôi không thực sự hiểu tất cả các khái niệm được nêu ra.
Bạn đã giải quyết nó chưa? –