我需要启用或安装什么来获得@RunWith注释?
我想使用Android Studio为Android应用程序创建一个简单的测试. 好吧,这是我的build.gradle root目录: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' } } allprojects { repositories { jcenter() } } 这是我的应用程序build.gradle文件: apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" sourceSets { androidTest.
4 2024-04-04
编程技术问答社区
如何使用robolectric对安卓音频录制应用进行单元测试
我只想知道是否有可能使用Robolectric Framework进行单位测试Android Audio Recorder应用程序. 据我所知,robolectric不使用仿真器或真实设备进行测试.但是在音频录制应用程序中,我需要测试音频是否正在录制?它是否存储在SD卡上的指定位置?它会使用媒体播放器播放吗?以及许多其他场景. 我研究了许多robolectric教程,但它们没有回答我的问题.我还问了这个问题( 解决方案 我想您使用Mediarecorder录制音频. Robolectric已经为Mediarecorder带来了阴影.该影子仅存储属性,而当前停止/启动状态.没有实施录音.有关详细信息,请参见 https://github.com/robolectric/robolectric/blob/master/master/shadows/framework/src/main/java/java/org/robolectric/shadowrric/shadowmed
16 2024-03-19
编程技术问答社区
Robolectric AndroidX片段NoClassDefFoundError
在将代码和测试迁移到 Androidx 之后,一切似乎都很好,但是由于 noclassDeffoundError,对于两个片段的Robolectric Junit测试都失败了:Androidx/fragment/testing/r $样式例外. 堆栈跟踪: java.lang.noclassdeffounderror:androidx/fragment/testing/r $ style androidx.fragment.App.testing.FragmentsCenario $ emptyFragmentActivity.oncreate(fragmentsCenario.java:79) 在android.app.activity.performcreate(activity.java:5933)at Android.App.Instrumentation.CallactivityOncreate(instrumentation.java:1105) 在 androidx.
6 2024-02-19
编程技术问答社区
让Robolectric与Volley一起工作
我正试图让凌空与Robolectric合作.我可以看到我的HTTP请求正在被调用,而ParsenetworkResponse正在被调用(我发送了JSONREQUEST的自定义子类),但是我的侦听器没有被调用.有建议吗?这是一个代码示例: @Test public void testTypeAheadClient() throws Exception { Robolectric.getFakeHttpLayer().interceptHttpRequests(false); //mRemoteRequestQueue and mCustomRequest are set up previously mRemoteRequestQueue.add(mCustomRequest); } private static class CustomRequest extends JsonRequest { public CustomReque
6 2024-02-19
编程技术问答社区
Android单元测试失败,出现java.lang.IllegalArgumentException: 需要INTERNET权限
我正在尝试为我的应用程序设置单元测试.但是我面临着细分 的问题 这是我的测试课: @RunWith(RobolectricTestRunner::class) @Config(sdk = [Build.VERSION_CODES.O_MR1]) class LoginViewModelTest { private lateinit var viewModel: LoginViewModel @Mock private lateinit var authService: AuthService @Mock private lateinit var sharedPreferences: SharedPreferences @Before fun setUp() { MockitoAnnotations.initMocks(this) val mMyApplication = mock
4 2024-02-19
编程技术问答社区
Robolectric 3.0测试振动器服务
我正在将测试用例迁移到最新的Robolectric 3.0. 要在我的应用中测试Viberator服务,我之前使用了 org.robolectric.shadows.ShadowVibrator ,但是现在我也无法对其进行测试,即使使用自定义影子类. 即使没有更新的robolectric Wesite,它显示了不存在的RoboLectric.shadowof_(). this 是网站的链接,不是更新版本.请指南. 以下是自定义实施的代码: - 自定义类: - @Implements(Vibrator.class) public class ShadowVibrator { private boolean vibrating; private boolean cancelled; private long milliseconds; private long[] pattern; private int rep
6 2024-02-19
编程技术问答社区
不能运行安卓测试套件。线程 "main "中出现异常 java.lang.ClassNotFoundException
我有2个测试课程,我需要在测试套件上运行一个是RestaurantModelTest另一个是CartModelTest.class: @Config(sdk = 16, manifest = "src/main/AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) public class RestaurantModelTest { //setUp code here... @Test public void testFindByLocation() throws Exception { //test code here } } 因此,我在线遵循了一些教程,他们指定要使用我的两个类别的班级创建这样的测试套件: import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWit
14 2024-02-19
编程技术问答社区
如何在Robolectric 2.2中指定自定义/res目录?
我的单位测试和我的Android应用程序生活在单独的项目中. 使用Robolectric 1,我可以指定我的/res目录的位置: public class MyTestRunner extends RobolectricTestRunner { public MyTestRunner(Class testClass) throws InitializationError { super(testClass, "../app/AndroidManifest.xml", "../app/res"); } } 如何在Robolectric 2.2中指定/res目录位置? 解决方案 使用 : public MyTestRunner(Class testClass) throws InitializationError { super(testClass); } @Override protected Androi
4 2024-02-19
编程技术问答社区
Robolectric 3 GooglePlayServicesNotAvailableException
我刚刚开始使用Robolectric,想知道如何解决 Google Play Services .我正在使用 robolectric 3 rc2 ,而我的gradle如下: build.bradle compile 'com.squareup.okhttp:okhttp:2.3.0' compile 'com.google.android.gms:play-services:7.0.0' testCompile ("org.robolectric:robolectric:3.0-rc2"){ exclude module: 'commons-logging' exclude module: 'httpclient' } testCompile ("org.robolectric:shadows-play-services:3.0-rc2"){ exclude module: 'commons-logging' exclude module: '
6 2024-02-19
编程技术问答社区
是否有可能用Robolectric测试一个摘要活动?
我在代码中使用抽象活动类来很好地抽象活动类中的某些功能. 我正在尝试使用Robolectric和gradle-android-test-plugin使用扩展抽象类的子类测试抽象活动类.我似乎无法正常工作. 有人在这方面有任何经验,甚至有可能吗?基本结构是: @RunWith(RobolectricGradleTestRunner.class) public class AbstractActivityTest { private ActivityTest activity; @Before public void setUp() throws Exception { activity = Robolectric.buildActivity(ActivityTest.class).create().get(); } private class ActivityTest extends AbstractActiv
12 2024-02-19
编程技术问答社区
使用Robolectric改变配置
要保留我在配置更改中的异步性,我使用setRetainInstance(true)的基于片段的解决方案,该解决方案托管每个asynctask并回到听力活动,类似于此解决方案最终,目的是使用Robolectric在整个配置更改中测试异步的保留功能,但我需要从正确设置实际配置更改开始.但是,看来我无法模仿配置更改期间发生的确切参考行为. 真实的应用程序:在运行真实应用程序时,在配置更改上,在保留片段时会破坏和重新创建活动,因此它似乎在起作用.我可以通过检查配置更改之前和之后的参考文献(以下使用的示例引用): : 真正的应用程序,以前: 活动: ABC 片段: xyz 真正的应用程序,之后: 活动: bca 片段: xyz(正确保留并重新连接) 案例1:在Robolectric测试中的活动中运行RepreAte()时,该活动似乎并未正确重新创建其实例(尽管文档说该方法执行所有执行生命周期电话): mActivityController = Robolectric
10 2024-02-19
编程技术问答社区
Roboelectric 3.0测试片段
我是机器人测试的新手. 我正在尝试遵循 this 帖子以测试片段.我正在使用以下为依赖项 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile "org.robolectric:robolectric:3.0" testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.google.code.gson:gson:2.3' compile 'com.android.support:support-v4:22.1.0' compile 'com.google.android.gms:play-services:7.5.0' } 但是,这种导入为我提供了汇编问题,我无法从符号支持fragmentTestutil开始.请引导我缺少什么? org.r
2 2024-02-19
编程技术问答社区
机器人的问题。setupActivity()中的NullPointerException
我正在尝试使用Robolectric测试我的活动,但是在尝试使用Robolectric设置活动时,我总是会得到NPE.我遵循了 robolectric.org 网站. 的指南. 这是我的代码: @Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP, manifest = "src/main/AndroidManifest.xml") @RunWith(RobolectricTestRunner.class) @Ignore public class MainActivityUnitTest { private MainActivity activity; @Before public void setup() { activity = Robolectric.setupActivity(MainActivity.class); }
8 2024-02-19
编程技术问答社区
Robolectric, 点击列表项的问题
我一直在为这个问题而苦苦挣扎,我认为我没有得到有关Robolectric的基本内容.通常,一些Google搜索可以帮助我解决此类问题的底部,但是在此问题之间以及查看示例代码之间,我找不到任何使用. 我正在尝试模拟单击列表视图项,并检查单击后启动活动.我一直回想起我正在测试的当前活动是由此产生的活动.我尝试删除所有列表项目点击代码并检查结果活动,这是我正在测试的installationListactivity返回的.因此,我得出的结论是,列表视图项目没有被点击,我只是不确定为什么.我在下面的测试代码中设置的系统日志是我希望它们的值.该列表为13个项目,而GetChildat(0)返回标题.我认为,获得第一项(GetChildat(1))并在其上调用PerformClick或其子女文本视图会启动我的预期活动,但事实并非如此.无论如何,这是我正在使用的robolectric/测试代码: @Before public void setUp() { mA
10 2024-02-19
编程技术问答社区
用Robolectric进行Android http测试
我有一个Android应用程序,其中应用程序的主要部分是Apicalls.java类,我提出HTTP请求以从服务器获取数据. 我想为此Java类创建单元测试,因为它是该应用程序的大部分.这是从服务器获取数据的方法: StringBuilder sb = new StringBuilder(); try { httpclient = new DefaultHttpClient(); Httpget httpget = new HttpGet(url); HttpEntity entity = null; try { HttpResponse response = httpclient.execute(httpget); entity = response.getEntity(); } catch (Exception e) { Log.d("Exception", e); } if (entity != null)
20 2024-02-19
编程技术问答社区
如何用Robolectric测试一个IntentService?
我正在尝试使用Robolectric. 我正在使用: 开始服务 Activity activity = new Activity(); Intent intent = new Intent(activity, MyService.class); activity.startService(intent); ShadowActivity shadowActivity = Robolectric.shadowOf(activity); Intent startedIntent = shadowActivity.getNextStartedService(); assertNotNull(startedIntent); 看起来startedIntent不是空的,但onHandleIntent()似乎没有被称为. 我应该如何测试? 解决方案 onHandleIntent是一种受保护的方法,因此不能直接称为. 我的解决方案是在我的测试案例中扩展服务类,覆盖onHan
18 2024-02-19
编程技术问答社区
用Robolectric测试ViewPager(和CursorLoader)。
有人知道如何使用Robolectric测试以下设置? 包含ViewPager的片段,加载了Cursorloader的数据. 在下面的代码中,Cursorloader永远不会将其推入适配器的视图PAGER. 我被困在await() call. events fragmenttest.java: @RunWith(CustomRobolectricTestRunner.class) public class EventsFragmentTest extends AbstractDbAndUiDriver { // which element in the view pager we are testing private static final int TEST_INDEX = 0; protected SherlockFragmentActivity mActivity; protected EventsFra
6 2024-02-19
编程技术问答社区
SimpleTestCursor robolectric 3.0- 编译问题
我正在尝试在我的应用中测试光标. 但是,对于以下导入,我会收到错误消息 - 无法解析符号 测试仪.我正在使用Robolectric 3.0.为什么进口没有解决,我会错过一些依赖性吗?我看过互联网,但没有支持.请帮助. 我正在尝试使用: a>和以下是导入 import org.robolectric.tester.android.database.SimpleTestCursor; 这些是我的依赖性: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile "org.robolectric:robolectric:3.0" testCompile "org.robolectric:shadows-support-v4:3.0" testCompile 'junit:junit:4.12' compile 'com.andro
不能运行机器人测试
我继续获得 java.lang.noclassdeffounderror: android/content/pm/packagemanager $ namenotfoundException ... java.lang.classnotfoundexception:无法加载 android.content.pm.packagemanager $ namenotfoundexception ...由: java.util.zip.zipexception:无效的LOC标头(不良签名) 任何想法是什么原因导致了这一点,以及如何修复它? 解决方案 您的jar file可能是corrupted,因此请添加jar文件或rebuild jar文件的路径...清洁项目并重新运行. 其他解决方案 您需要从Android SDK 的Android-21安装源
8 2024-02-19
编程技术问答社区
AndroidViewModel和单元测试
我正在使用AndroidViewModel LiveData将意图发送到IntentService并从EventBus接收事件.我需要有关意图和EventBus的应用程序上下文. 使用本地测试测试AndroidViewModel类的最佳方法是什么?我可以从robolectrics runtimeenvironment.application开始.但是,AndroidViewModel似乎没有一个Shadowof()来检查是否将正确的意图发送给正确的接收器. 也许可以在某种程度上使用我自己的模仿者使用Mockito进行此操作,并将其注入我的AndroidViewModel>,但这似乎并不是很简单. 我的代码看起来像这样: class UserViewModel(private val app: Application) : AndroidViewModel(app){ val user = MutableLiveData() ... privat
6 2024-02-19
编程技术问答社区