草庐IT

带有 Dagger 2 的 Android 普通 Junit

我曾经在MVP工作,我通常使用普通的Junit(不是Instrumentation!)测试我的Presenter,因为Presenter只有业务逻辑,没有任何对Android内部的引用。现在切换到Dagger2后,我了解到我在为我的应用程序组件设置“TestModule”时遇到了问题。在测试类中创建组件将不起作用(可能是因为“apt”没有在那里运行)未找到任何将Dagger与标准Junit测试结合使用的示例。我发现的每个示例都只依赖于Instrumentation测试或Roboelectric(基本上模拟Activity和其他Android相关的东西),但这对我来说只是一个UI测试,我

Android Junit 测试与普通 Junit 测试

我正在接手一个android项目,我希望为该项目引入单元测试,以帮助避免可能的回归。对于普通的java项目,我有两个源文件夹:src和test。src源文件夹包含我所有的源文件,我的test源文件夹包含我所有的单元测试,我认为这是将测试与源分开的标准,所以你不必和他们一起发货。我一直在网上阅读一些内容,Android应用程序的方法看起来有点不同。几个示例讨论了为android测试项目设置第二个项目,然后引用android项目。我想确认几件事:在测试Android项目时,有一个用于测试的第二个项目是否合适,或者我只是在寻找不好的例子?所有单元测试都应该是android单元测试吗?例如。是

android - 如何单元测试(junit)Android Flavor/Variant - 类不存在

我们的应用程序中有2种产品口味,一种口味有一个类(FlavorSpecificClass),而另一种没有。我们在src/test文件夹中有一个针对FlavorSpecificClass的junit测试,当我们在我们的核心变体上时,它不会编译,因为该变体中不存在该类。我找不到对每个变体进行单独单元测试的方法,除非我注释掉对FlavorSpecificClass的引用,否则代码不会在我们的核心变体中编译。我该如何解决这个问题? 最佳答案 假设您正在使用gradle。因此,为此您需要有另一个目录,该目录与您的“测试”目录位于同一位置。将目

android - 在 Android Instrumentation jUnit 测试中访问 R.raw 资源

我正在尝试在AndroidStudio中创建一些AndroidInstrumentation类,以便我可以测试我的ormlite类。ormlite的DBHelper类需要从ormlite配置文件中读取,该文件位于我的res/raw/ormlite_config.txt中,并使用R.raw.ormlite_config.这不是我使用openRawResource(R.raw.ormlite_config)获取的东西,因为DBHelper父类(superclass)的构造函数需要int资源。当我运行我的测试时,它找不到它:android.content.res.Resources$NotF

使用JUnit单元测试

前提: 测试题目:根据输入的年份和月份判断月份的天数。若月份不在有效范围之内,应提示:“月份输入不正确。”。月份不为2月,根据输入月份输出对应的月份天数。月份为2月,根据年份判断如为普通闰年,输出2月份正确天数;如为世纪闰年,输出2月份正确天数;不为闰年输出2月份天数。返回结果格式:“year年month月份的天数是days天。”year、month为传入的值,days为判断得到的天数值。其中变量year、month均须为正整数。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中编写一个测试方法。使用ass

【单元测试】Junit 4(二)--eclipse配置Junit+Junit基础注解

目录1.0前言1.1配置Junit41.1.1安装包1.1.2创建Junit项目1.2Junit4注解1.2.1 测试用例相关的注解1.2.1.1 @Before1.2.1.2 @After1.2.1.3@BeforeClass1.2.1.4@AfterClass1.2.1.5@Test1.2.1.6 @Ignore1.2.1.7示例1.2.2 打包测试Suite相关的注解1.2.2.1 @RunWith(Suite.class)1.2.2.2 @Suite.SuiteClasses(...{xx.class,xx.class,...})1.2.2.3示例1.2.3 参数化测试相关的注解1.2

android - 使用 fragment 对 Android 应用程序进行 JUnit 测试

我的Android应用程序是基于单一Activity、基于多个fragment的模型构建的。我需要对应用程序进行单元测试。我可以为包含使用ActivityInstrumentationTestCase2JUnit的所有Activity的应用程序编写单元测试用例,但不能为包含fragment的应用程序编写单元测试用例。请建议为fragment编写JUnit测试用例的方法。谢谢 最佳答案 参见Android:TestingfragmentsCopiedforyourreadingpleasurewitheditsmadeforgetFr

Android jUnit 测试 java.lang.NoClassDefFoundError : android/database/sqlite/SQLiteOpenHelper

我正在尝试运行模拟SQLiteOpenHelper子类的单元测试,但出现以下错误。java.lang.NoClassDefFoundError:android/database/sqlite/SQLiteOpenHelperatjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClass(ClassLoader.java:763)atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)atja

android - 如何在没有 Activity 的情况下在 Android JUnit 测试的 UI 线程中运行代码?

我有一个依赖于AsyncTask来检索数据的数据库组件。一旦在应用程序中使用,它将始终从UI线程调用,但是我如何在不实例化Activity的情况下在JUnit测试中执行此操作(我只是没有Activity,也不应该有创建一个仅用于测试目的)?runOnUiThread()是一种Activity方法,因此它不是一个选项。有没有一种方法可以通过从Android测试库获取线程或通过实现MockUiThread来模拟UI线程? 最佳答案 Android.OS.Handler应该能够更新ui。要使用处理程序,您必须对其进行子类化并覆盖handl

使用 Junit : testing network/bluetooth resources 进行 Android 单元测试

我正在慢慢对单元测试着迷。我正在尝试使用测试驱动开发开发尽可能多的软件。我正在使用JUnit对我的Android应用程序进行单元测试。我一直在开发一个使用蓝牙的应用程序,但很难对其进行单元测试。我有一个使用BluetoothAdapter获取配对和发现设备列表的Activity。虽然它有效,但我想知道如何对其进行单元测试。为了获取已配对设备的列表,我在BluetoothAdapter的实例上调用了getBondedDevices()。问题是我不知道如何stub或模拟此方法(或我的Activity调用的任何其他bluetoothAdapter方法),因此我无法针对不同的配对设备列表测试我