Articles of junit

如何使用Java中的appium为Android本机应用程序执行滑动

我需要刷我的应用程序(从左到右,从右到左),这里我使用Java appium for android native app automation。 我试过这个链接, Swipe方法在android自动化测试中不起作用 但我不能,是否有任何其他链接请分享或任何人帮助我。

Android服务不是由JUnit测试启动的

我有这个测试类来测试远程服务: public class CoreServiceBasicTest extends ServiceTestCase implements ServiceConnection { /** Tag for logging */ private final static String TAG = CoreServiceBasicTest.class.getName(); /** Receive incoming messages */ private final Messenger inMessenger = new Messenger(new IncomingHandler()); /** Communicate with the service */ private Messenger outMessenger = null; /** Handler of incoming messages from service */ private static […]

是否可以在@BeforeClass注释方法中运行Android Espressounit testing?

我在使用检测的Androidunit testing中使用JUnit4 @BeforeClass注释时遇到了问题(我正在使用Espresso GUI测试库)。 一旦我使用@BeforeClass注释添加测试, Android Studio 1.5.1就不会运行任何测试,而只是打印“空测试套件”。 我没有使用测试套件。 我搜索了这个网站和网站,但找不到解决方案。 我认为在@BeforeClass方法中调用的代码实际上失败(TDD)可能是一个问题,但是当在正常测试用例中工作的代码放在@BeforeClass注释的方法中时,甚至会出现此错误。 谢谢。 更新:检查logcat输出后,正如一位评论者建议的那样,问题似乎是问题是没有启动任何活动 : 没有find任何活动。 您是否忘记通过调用getActivity()或startActivitySync或类似方法启动活动? 我该怎么做? 我无法使用ActivityTestRule字段,因为@BeforeClass注释的方法是静态的。 也许我只是以错误的方式使用@BeforeClass注释。 我的印象是你可以使用这个注释在测试类中的所有其他测试之前执行测试。 我基本上是在寻找TestNG注释”dependsOnMethods”的替代品。 也许我最好在测试类上使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)注释,并将第一个测试用例重命名为aaa_my_testcase 。 有人可以对此发表评论吗? 谢谢。 重新提出问题的标题。 import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.Espresso.pressBack; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.assertion.ViewAssertions.matches; import […]

获取junit.framework.AssertionFailedError:使用Unit和Mockito时,中没有find任何测试

我在我的android项目中添加了以下依赖项: // Unit testing dependencies androidTestCompile ‘junit:junit:4.12’ // Set this dependency if you want to use Mockito androidTestCompile ‘org.mockito:mockito-core:1.10.19’ 并使用junit4 api创建一个测试(例如,Adder是一个简单的类,它总结了int): @RunWith(MockitoJUnitRunner.class) public class AdderTest { @Test public void testValidAdd() { Adder adder = new Adder(); assertEquals(adder.add(1,1), 2); } } 当我尝试运行测试时,我得到: 运行测试测试运行已启动junit.framework.AssertionFailedError:在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:android.test.AndroidTestRunner.runTest(AndroidTestRunner.run:)上的com.test.myapp.AdderTest中找不到测试。 176)在android.app.Instrumentation的android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)$ InstrumentationThread.run(Instrumentation.java:1701)完成 我在这里和这里读到,但没有任何帮助。 有谁看到我做错了什么/有什么输入?

有没有办法在Android上使用junit.extensions.TestSetup进行测试?

android sdk源包含junit.extensions的源代码,但是这些类不在android.jar中,即使junit.framework和junit.runner在那里。 我尝试创建自己的junit.extensions包并使用android sdk源中包含的源代码,但是我得到了一个ClassCastException(见下文)。 android.test.suitebuilder中的东西试图将套接字()方法的返回值强制转换为TestCase,即使套件返回Test接口。 我想使用junit.extensions中的TestSetup类,如下例所示(参见http://etutorials.org/Programming/Java+extreme+programming/Chapter+4.+JUnit/4.7+One-Time+Set+Up +和+撕裂+向下/ ): public SomeTestCase extends TestCase { public static Test suite() { TestSetup setup = new TestSetup(new TestSuite(SomeTestCase.class)) { @Override protected void setUp( ) throws Exception { // do your one-time setup here! } @Override protected void tearDown( ) throws Exception { // do your one-time tear down here! […]

JUnit Launcher测试… getActivity不返回

公共类LauncherActivityTest扩展ActivityInstrumentationTestCase2 { 私人发射器的动态; public LauncherActivityTest() { super(“com.android.launcher.Launcher”, Launcher.class); } @Override protected void setUp() throws Exception { super.setUp(); setActivityInitialTouchMode(true); } public void testLauncherApplication() { mActivity = getActivity(); assertTrue(mActivity != null); } } 添加…. manifest.xml 我尝试通过JUnit进行Launcher源代码测试。 为什么getActivity()函数不返回? 我的手机只运行启动器。 但其他应用程序运行然后运行测试很好。 ex)手机应用程序运行 – >测试:返回成功 只有启动器运行:等待状态 你知道为什么吗? 请帮帮我。

无法在Eclipse中启动Android JUnit Test。 坚持:启动:创建源定位器

我是Android JUnit Test的新手: 我编写了一个类(我命名为XmlTest.java),它扩展了AndroidTestCase,以便在Eclipse中测试我的Android项目。 当我右键单击XmlTest.java然后选择“Run As-> Android JUnit Test”时,Eclipse似乎无法启动测试。 在底部的进度条中,我看到“启动:创建源定位器……”。 这家伙有类似的问题。 但解决方案对我不起作用。 我也试过重启我的电脑,但问题仍然存在。 有没有人知道如何解决这个问题? 任何帮助表示赞赏。

Android上的参数化检测测试

我正在尝试为特定的Activity编写批量检测测试(使用ActivityInstrumentationTestCase2 ),每次测试运行时我都会更改意图。 我可以通过一次测试完成这项工作,然后循环停止并使用新意图重新启动Activity,但这不是我想要的。 一个原因是它们确实应该是单独的测试运行。 另一个原因是,我正在使用Spoon在测试完成时生成一个报告,报告将正确地认为我只进行了一次测试。 我想要的是将单个测试视为可能无限多的测试,并在每次测试运行时将数据传递给测试。 遗憾的是,您无法使用Theories,因为它会导致RunmentationException,其中InstrumentationTestRunner无法find我的测试。 有人有运气吗?

使用Gradle进行Android测试:更改JUnit测试输出文件名

当我使用Gradle为我的Android项目运行JUnit测试时(通过任务androidTest或connectedAndroidTest),我得到一个自动生成的输出XML文件,其中包含’build / outputs / androidTest-results / connected’下的测试结果。 此文件总是被称为’TEST-NexusS_Android16(AVD) – 4.1.2-app-.xml’,具体取决于我运行测试的设备或模拟器。 我想将文件名更改为更通用的名称,例如’junit-test-report.xml’(因为能够使用Jenkins JUnit插件解析它而不为每个设备设置特定的文件名)。 来自http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Test-reports我知道我可以通过put设置输出文件夹 testOptions { reportDir = “$project.buildDir/foo/report” } 在我的Gradle构建文件中。 我想,也一定可以更改文件名吗? 无法在网上find任何相关信息。 感谢帮助!

尝试测试SQLiteOpenHelper但getWritableDatabase()会抛出Null

我正在尝试使用我的SQLiteOpenHelper对象在Android Studio中针对我的应用数据库编写junit测试。 每次遇到insert方法我都会得到一个NullPointerException。 我在使用getContext()和mockContext设置但是没有骰子之间来回走动。 我启动并运行了我的模拟器。 有人可以告诉我我做错了什么吗? public class LocationDatabaseHelperTest extends AndroidTestCase { private SQLiteDatabase testDB; private SQLiteDatabase readDB; private LocationDatabaseHelper dbh; private RenamingDelegatingContext mockContext; private ContentValues cv; /** *Sets up a mock context to initialize the * LocationDatabaseHelper object. * @throws Exception */ public void setUp() throws Exception { super.setUp(); final String prefix = “test”; […]