草庐IT

Instrumentation

全部标签

android - 测试 Activity 是否返回预期结果

我有以下Activity:packagecodeguru.startactivityforresult;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;publicclassChildActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(sav

java - Android Instrumentation 在使用 AndroidJunitRunner 和 AndroidJUnit4 时测试 java.lang.UnsatisfiedLinkError

我在单元测试中使用了robolectric。最近在我们的项目中,我们添加了一个来自zendesk的新依赖项。repositories{maven{url'https://zendesk.artifactoryonline.com/zendesk/repo'}}compilegroup:'com.zendesk',name:'sdk',version:'1.3.0.1'现在我们甚至没有从这个库中引用任何类,我们只是通过添加这个依赖项在我们的robolectric单元测试中得到异常。我认为问题出在我们的项目中,但它也发生在示例机器人测试项目中。java.lang.VerifyError:E

android instrumentation 测试用例 - getinstrumentation() 返回 null

我一直在尝试制作一个扩展intstrumentationtestcase的测试用例,每当我调用getinstrumentation()时,它都会返回Instrumentation的空实例而不是Instrumentation,从而使我想执行的任何自动化都变得无用。我也在list中设置了权限,即使我只是在这个案例将要运行的同一个应用程序上测试自动化......有什么想法吗? 最佳答案 您需要通过调用injectInstrumentation(InstrumentationRegistry.getInstrumentation());使用

android - Android 的仪器测试 - 如何在方向改变后接收新的 Activity?

我正在尝试测试新创建的Activity(方向更改后)是否已正确重新初始化。下面的代码显示从getActivity()返回的Activity是在setUp()中构造的Activity,而不是新创建的Activity。测试:publicclassMyActivityTestextendsActivityInstrumentationTestCase2{privatestaticfinalStringTAG="RAMPS";privateMyActivitymActivity;publicMyActivityTest(){super("com.ramps",MyActivity.class)

Android Instrumentation 测试没有从库项目中找到类

所以当我从AndroidStudio运行我的Activity/instrumentation测试时,在尝试从单元测试调用库模块中的方法的代码行上,我得到了一个NoSuchMethodError。所以这是我的测试:publicclassMainActivityTestextendsActivityInstrumentationTestCase2{publicvoidtestMainActivity(){finalMainActivitytarget=(MainActivity)getActivity();MyLibarary.someStaticMethod();//yieldsjava

安卓测试 : Instrumentation run failed due to 'java.lang.ClassNotFoundException'

我有3个测试类用于我的主应用程序中的特定包。我的第一个测试类运行良好,其他2个则不然。当我尝试运行这2个测试时,出现以下错误:Instrumentationrunfaileddueto'java.lang.ClassNotFoundException'我已经验证过:如果构建路径配置正确,如果目标包是正确的,如果我在导入jUnit时遇到问题。想知道问题出在哪里吗?-----//-----解决方案:我更改了我使用的jUnit版本,测试按预期执行。 最佳答案 您需要将JUnit库添加到您的包中,如下所示:在Eclipse上,右键单击您的测

android - 如何使用 Android Intent 以编程方式启动 Instrumentation 项目?

开始测试用例的一种方法是,adbshellaminstrument-wcom.google.vishal.test/android.test.InstrumentationTestRunner我想使用Android代码开始这个(有Intent)例如,adbshellamstart-ncom.google.android.contacts/.ContactsActivity我们可以通过以下方法使用Androidintent运行:-Intentintent=newIntent(com.google.android.contacts,ContactsActivity.class);start

Android/Robolectric 框架工作 - 实例化 Activity 在 getResource 上返回 null

这与在Android上使用Robolectric框架进行单元测试有关。我在正常运行时没有问题的代码上遇到空指针异常。我刚开始使用机器人电动工具,所以它可能非常简单。这是测试的调用代码:@TestpublicvoidtestInitUtilsInitSequenceNumberIsRandom(){//createanactivityforreferenceInitUtilsinitUtils=newInitUtils();//dostaticinitializationtoparsequestionsintomemoryInitUtils.initialize(initUtils);/

android - 如何使用 Espresso 在 Instrumentation 测试中注入(inject) Mocked Presenter of Activity

我已经试了一个星期了。我已经抓取了所有可用的文章,但它们的实现或示例不尽如人意或停留在Espresso测试的步骤。我的Android应用程序遵循MVP架构(并且是在Java中)场景:[仅举一个例子]我有一个使用Dagger2获取HomePresenter的HomeActivity。(在通过HomeComponent中的voidinject(HomeActivityactivity)公开的HomeModule中提供方法。在我的HomeActivity的espressoTest中,我想注入(inject)一个mockpresent。我没有通过AppComponent在AppModule中公

java - 在 Android 中,如何有效地找到方法的调用者

我正在构建一个需要检测Android框架类的测试/分析工具。在该工具中,需要检测类以找出当前正在执行的方法(即方法签名)的调用者,并根据调用者完成一些处理。我的问题是,我应该使用哪种方法来确定调用方?我知道一种方法是使用java.lang.Throwable和方法getStackTrace。但是,它效率不高。Android平台是否有任何其他(公共(public)或隐藏)API(类似于标准JDK的sun.reflect.Reflection.getCallerClass)可以使用? 最佳答案 有Thread.getStackTrace