我看到我不是唯一有这个问题的人,但是我没有找到正确的答案.
我有一个我想要测试的 Android项目.我为我的项目的每个类创建一个junit测试类.
我的问题是当我运行我的测试,我有以下错误:
java.lang.NoClassDefFoundError: android/content/Context

这是我的班级考试:

public class DevicesBDDTest extends TestCase {

    DevicesBDD bdd;

    /**
     * @throws java.lang.Exception
     */
    protected static void setUpBeforeClass() throws Exception {
    }

    /**
     * @throws java.lang.Exception
     */
    protected static void tearDownAfterClass() throws Exception {
    }

    protected void setUp() throws Exception {
        super.setUp();
        Context ctx = mock(Context.class);
        final MaBasesqliteInterface mockMaBasesqlite = mock(MaBasesqliteInterface.class);
        bdd = new DevicesBDD(ctx){
            @Override
            public MaBasesqliteInterface createMaBasesqlite(Context context) {
                return mockMaBasesqlite;
            }
        };
    }


    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void test() {
        assertEquals(1,1);
    }
}

我的类DeviceBDD需要一个对象上下文,因此我创建一个模拟(与mockito).我也试过一个对象MockContext,但它不工作.

这是我的Java构建路径:

> mockito-all-1.9.5.jar
> Android 2.1
– >的android.jar
> Android依赖关系
– > annotations.jar
> Junit 3
– >的junit.jar

解决方法

不知道如果我有同样的问题,但我正在使用毕业生,由于某些原因,测试不再运行,与您有同样的错误.我尝试清洁和重建,但没有效果.经过几个小时的挫折,并试图找到一个答案,我在GitHub线程中遇到了简单的解决方案:

I resolved this issue by removing the .gradle folder in my project and rebuilding the project.

(感谢vpetrov)

java.lang.NoClassDefFoundError:android和junit测试的更多相关文章

  1. ios – 一些涉及块方法和OCMockito的验证

    我正在使用Ocmockito,我想在我的ViewController中测试一个使用NetworkFetcher对象和块的方法:特别是,我想模拟fetchInfo:这样它就会返回一个虚拟结果数组,而不会访问网络,并验证是否在UITableView上调用了reloadData方法,模型应该是它应该是什么.由于此代码是异步的,我假设我应该以某种方式捕获块并从我的测试中手动调用它.我怎么能做到这一点?解决方法这很容易:我把所有东西放在一个测试方法中,但是将mockedFetcher和mockedTable的创建移

  2. Android studio – Faild to resolve:com.android.support:design:26.0.1错误

    我有一个错误叫:我的androidstudio版本是3.0beta1.我的gradle文件如下:我想把“设计”放到我的项目中,但我不能这样做.我该怎么做?解决方法尝试改变和或者不要更改为bulidToolsversion更改依赖项

  3. Android架构组件ViewModel – 如何在测试Activity上模拟ViewModel?

    我正在尝试设置类似于GithubbrowserSample的UI测试,看起来示例项目只有Frag的模拟viewmodel而不是Activity的示例.这是我的代码,我试图通过模拟viewmodel来测试Activity.但viewmodel未在Activity中的onCreate()之前设置.有人可以帮我解决这个问题吗?解决方法JUnit@Rules在@Before方法之前进行设置,因此您的活动在

  4. Android单元测试的正确方法

    我知道这对所有Android开发者来说都是一个乏味的话题.但究竟什么是Android测试的正确方法?解决方法这个问题和我的回答,与Android没有任何关系,但这是一件好事.我略微修改了你的假设,但原理是一样的.>70%单元测试>20%集成测试>10%UI测试应该是70%吗?最后,检查您的UI是否按预期工作.你在这个级别显示什么并不重要.只要在用户未登录您的罚款时显示登录屏幕.这通常被称为TestPyramid,是你所描述的,只是减去了明显的比例.

  5. android – 使用Robolectric测试ActionBarActivity时出错

    我正在使用Robolectric来测试我的应用程序中的活动.该活动扩展了ActionBaractivity.当我测试活动时,我得到错误:“IllegalStateException:你需要在这个活动中使用Theme.AppCompat主题(或后代).”我的测试环境是:AndroidStudio0.8.6,Robolectric2.4-SNAPSHOT,support-v4库版本20.0,appco

  6. android.test.AndroidTestCase中的方法setUp没有被模拟

    notmocked’错误,并建议将以下内容放入build.gradle:这可以在从命令行启动时运行测试但是当我使用rightclick从AndroidStudio运行测试类时–>跑.这样,我又得到了同样的错误:关于如何解决这个问题的任何想法?

  7. Android Studio中的Gradle Error:找不到ID为’com.android.library’的插件

    当我尝试在AndroidStudio中构建Android库项目时,我收到以下Gradle错误:我对Gradle很新,这对我来说很困惑.为什么会这样?build.gradle文件如下:解决方法您的问题是您使用的顶级文件无法使用此类插件.在AS中你有这样的结构:在您的顶级文件中,您可以使用:在lib/build.gradle中,您可以使用问题中发布的代码:最后在您的settings.gradle中你也可以参考thisquestion.

  8. android – Espresso – 点击对话框的按钮

    我想测试Android6的权限,但我找不到使用Espresso点击“允许”按钮的方法.有没有办法做到这一点?

  9. android – 尝试单击导航按钮时Espresso AmbiguousViewMatcherException

    //这里的布局//测试输出解决方法这不是Espresso中的错误.视图层次结构清楚地显示了具有相同ID的两个视图.这可能是由于视图位于ViewPager内部,而ViewPager是一个AdapterView.因此可以预期多个实例.要解决此问题,请在匹配视图时更具体.仅仅通过ID无济于事.由于主页按钮的其他ImageView不可见,因为它的父级是GONE,您可以简单地匹配:

  10. Android gradle build:在APK LICENSE.txt打包期间重复文件

    我正在尝试使用以下gradle构建文件构建Android测试运行时我收到以下错误:Error:duplicatefilesduringpackagingofAPK…Pathinarchive:LICENSE.txtOrigin1:….gradle/caches/artifacts-24/filestore/junit/junit/4.11/jar/4e031bb61df09069aeb2bffb4

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部