Articles of 嘲笑

Android ApplicationTestCase使用MockContext

我是新来的Androidtesting,我想创build一个ApplicationTestCase使用MockContext(其实我试图使用重命名模拟上下文)。 但我不断收到AssertionFailedError。 这是我迄今为止的基本代码: AppTests.java package com.myProject.test; import android.test.ApplicationTestCase; public class AppTests extends ApplicationTestCase<MyApplication> { public AppTests() { super(MyApplication.class); } @Override protected void setUp() throws Exception { final RenamingMockContext mockContext = new RenamingMockContext(getContext()); setContext(mockContext); createApplication(); } } MyApplication.java package com.myProject.test; import android.app.Application; public class MyApplication extends Application { public MyApplication() { } @Override public void onCreate() […]

如何在testing过程中调用oncreate之前获取活动引用

如何在onCreate之前获得Activity的引用将被调用。 而它的testing。 我使用ActivityTestRule作为JUnit规则。 这个要求的原因是我想从testing中注入模拟活动。 public class MyActivity extends Activity{ MyComponent myComponent; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); if(myComponent==null){ myComponent … //initialise dagger component } myComponent.inject(this); … } public void setComponent(MyComponent comp){ this.myComponent = comp; } } public class MyTest{ @Rule public ActivityTestRule<MyActivity> intentsTestRule = new ActivityTestRule<>(MyActivity.class); MyComponent myFakeComponent; @Before public void setUp() { MyActivity activity […]

最快的方法来创build一个模拟活动进行testing

我现在正在unit testing一个库。 在某些类中,我需要在某些静态方法中传递一个活动作为参数。 图书馆本身不包含任何活动。 我需要以某种方式获得一个模拟活动的实例,以在每个单独的方法testing中使用。 我已经阅读了Activity Testing Tutorial和Testing Fundamentals部分。 如果您要testing项目中已经存在的活动,那么大部分所说的内容都是有意义的。 但是我只需要一个模拟的工具就可以在Ui线程中显示对话框并运行简短的任务。 最快,最简单的方法来实现这一点? 我应该在testing项目中创build模拟活动,还为虚拟用户界面提供xml布局资源吗? UPDATE 由于我没有find任何自动创build模拟活动的方法,我决定自己提供。 我在testing项目里面创build了一个虚拟活动,它通过xml提供了一个虚拟的布局。 然后我编码我的testing扩展ActivityInstrumentationTestCase2 : public class LibraryTest extends ActivityInstrumentationTestCase2<MockActivity> { public LibraryTest(String name) { super(MockActivity.class); } protected void setUp() throws Exception { super.setUp(); } public void testAMethodFromLibrary() { fail("Not yet implemented"); } } 其中MockActivity是我在这个testing项目中创build的上述模拟活动。 但是,似乎Androidtesting框架在启动活动时遇到了麻烦,并且出现了这个exception: java.lang.RuntimeException: Exception during suite construction at […]

模拟GPS提供者只能在debugging模式下工作

我一直在更新一个应用程序,并拉动版本的目标,我们正在遇到GPS嘲笑的问题。 在使用android studio进行debugging时,模拟位置工作正常,但是当我离开debugging并正常运行时,它根本不起作用。 背景: 这是通过串口拉动GPS信息并嘲弄设备的位置。 这一切正常工作,直到嘲笑,那么地点将不会被设置,除非我正在积极debugging。 如果我错过了一些东西,请让我知道,这似乎是一些安全限制,我不知道让我们失望。 编辑:我仍然无法find任何东西,这似乎是特别是当我通过代码工作,但否则只是运行不起作用

用AndroidAnnotations进行testing可以注入吗?

我还没有find如何做到这一点的例子。 我假设这是不可能的基于这样的例子: @Bean(MyImplementation.class) MyInterface myInterface; 那里注入的课程已经确定了。

Androidunit testing的相机预览?

我试图unit testing我的相机预览图像,是否有可能在testing过程中设置静态图像为“相机图像”,或者我应该尝试实现我自己的模拟对象? 我正在寻找像这样的东西: myCameraMock.setImage(image); myCameraDispatcher.setCamera(myCameraMock); (我正在使用opencv相机) 谢谢

在导航应用中使用模拟位置

我试图开发一个应用程序,将模拟通过谷歌的导航应用程序的路线。 我发现了一些很好的例子,说明如何在本网站的某些其他post中实现模拟位置提供程序( Android设备上的模拟位置? )。 通过对源代码http://www.cowlumbus.nl/forum/MockGpsProvider.zip的简单修改,我的模拟位置显示在Google的地图应用程序中。 (唯一的变化是到LocationManager.GPS_PROVIDER的模拟提供者名称)。 我的问题是,当我打开导航应用程序,它说“searchGPS信号”。 我仍然看到我的位置在地图上移动; 但是,它不会生成到目的地的路线。 我想知道是否有人知道我需要做什么来伪造导航,看到我的模拟位置作为GPS信号。 谢谢。 public class MockGpsProviderActivity extends Activity implements LocationListener { private MockGpsProvider mMockGpsProviderTask = null; private Integer mMockGpsProviderIndex = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); String mocLocationProvider = LocationManager.GPS_PROVIDER; locationManager.addTestProvider(mocLocationProvider, false, false, false, false, true, false, false, 0, […]

Mockito – validation方法是做什么的?

比方说,我有以下伪代码testing代码: //Let's import Mockito statically so that the code looks clearer import static org.mockito.Mockito.*; //mock creation List mockedList = mock(List.class); //using mock object mockedList.add("one"); mockedList.clear(); //what do these two verify methods do ? verify(mockedList).add("one"); verify(mockedList).clear(); 我继续显示testing通过,但我不知道validation的意思是什么? 什么是确切的核实? 我明白,我嘲笑一个电话添加和清除,但这两个validation呼叫做什么?

如何在Android项目中使用PowerMock?

我创build了一个新的Androidtesting项目。 我从https://code.google.com/p/powermock/downloads/list下载了powermock-mockito-junit-1-1.5.zip。 我将所有库添加到testing项目的libs文件夹中。 testing类是一个非常简单的对象: package com.test.test; import org.junit.runner.RunWith; import org.powermock.modules.junit4.PowerMockRunner; import android.util.Log; @RunWith(PowerMockRunner.class) public class TestTestAndroid { public void testRuns() { Log.e("test", "Test case is called"); } } 然后,我尝试从Eclipse运行项目,或者从命令行创build项目。 我犯了同样的错误: Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/hamcrest/Description; 事实certificate, junit-4.8.2.jar和mockito-all-1.9.5.jar定义了org.hamcrest.Description 。 我必须包括Mockitojar子,原因很明显 – 我需要Mockito。 Android提供了不同版本的JUnit,但它是旧版本,不包含@RunWith注释。 有人可以回答如何在Android项目中使用powermock和mockito,没有冲突的org.hamcrest.Description问题?

如何在Android模拟器相机模拟图片?

有没有一种方法来设置一个静态图片的照片被模拟器的相机拍摄? 我想用模拟器上的zxing条形码阅读器来testingir。