java–Android模拟相机

java–Android模拟相机,第1张

概述是否可以模拟AndroidCamera类?@OverridepublicvoidsetUp(){_camera=Mockito.mock(Camera.class);}无法生成模拟(Mockito的createProxyClass中的ExceptionInitializerError).我应该在相机周围创建一些包装器(不是我最喜欢的解决方案,真的很想嘲笑这个类……)?或者,

是否可以模拟Android Camera类?

@OverrIDepublic voID setUp() {    _camera = Mockito.mock(Camera.class);}

无法生成模拟(Mockito的createProxyClass中的ExceptionInitializerError).

我应该在相机周围创建一些包装器(不是我最喜欢的@R_301_6954@案,真的很想嘲笑这个类……)?

或者,我应该使用不同的模拟库然后Mockito?

希望有人能指出我正确的方向.

完成ExceptionInitializerError的堆栈跟踪

java.lang.ExceptionInInitializerErrorat org.mockito.internal.creation.jmock.ClassImposterizer.createProxyClass(ClassImposterizer.java:85)at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:62)at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:56)at org.mockito.internal.creation.cglibMockMaker.createMock(cglibMockMaker.java:23)at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:26)at org.mockito.internal.MockitoCore.mock(MockitoCore.java:51)at org.mockito.Mockito.mock(Mockito.java:1243)at org.mockito.Mockito.mock(Mockito.java:1120)at com.cleancode.lifesaver.flashlight.test.FlashlightTests.setUp(FlashlightTests.java:20)at androID.test.AndroIDTestRunner.runTest(AndroIDTestRunner.java:190)at androID.test.AndroIDTestRunner.runTest(AndroIDTestRunner.java:175)at androID.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)at androID.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)Caused by: java.lang.VerifyError: org/mockito/cglib/core/ReflectUtilsat org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167)at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217)at org.mockito.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:117)at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:109)at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:105)at org.mockito.cglib.proxy.Enhancer.<clinit>(Enhancer.java:70)... 18 more

解决方法:

在你的stacktrace中,注意子字符串“.cglibMockMaker”:这就是问题所在. cglib不适用于androID – 有一个Mockito专用于AndroID的插件,它使用dexmaker,就像cglib一样但是适用于dalvik.只是搜索dexmaker mockito,你应该走在正确的道路上.

您仍然无法模拟Camera.open()(静态工厂方法),但您可以围绕它重构代码.重要的是Camera不是最后一堂课;其余的只是测试的笨拙管道,你应该接受作为编写经过良好测试的AndroID应用程序的税.

总结

以上是内存溢出为你收集整理的java – Android模拟相机全部内容,希望文章能够帮你解决java – Android模拟相机所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1113171.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存