Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试Android应用程序逻辑大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
想要为我的应用程序编写一些测试,我偶然发现了 Android testing pages.经过相当长的阅读,很快就发现我可以从中获得的唯一信息是有关如何测试UI /活动的信息.我真正想要的是用简单的蚂蚁测试来测试我的逻辑的方法,最好是甚至不涉及设备.我应该在这个阶段提到我没有使用Eclipse,而且令人非常难过的是,Android上99%的Java资源都假设人们这样做.

在任何情况下,尝试运行任何东西,我尽可能多地和教程一起玩.它要求测试目录与src在同一级别上.当然,即使他们的每一页都暗示测试项目是一个完全独立的实体.在顶级项目目录中,我跑了
android create test-project -m / path / to / my / project / -n MyProjectTest -p tests.值得一提的是,他们非常不同意他们想要如何设置事项as seen on this question.访问目录时,我发现了认的测试文件.这是问题的开始.

据我了解,测试完成如下:构建应用程序,安装;去测试,构建测试,安装;使用ant test从tests目录运行测试,或者使用adb sHell am instrument直接启动它们.这很好.但是我不想测试活动,只想测试逻辑(不访问任何视图/活动).

更改认测试以扩展AndroidTESTClass似乎已经有一段时间了.测试正在运行,但有一些警告:使用ant clean清理测试也清理了项目目录(../tests),因此在干净的环境中构建测试需要花费很长时间(这是必要的,因为蚂蚁调试在检测更改时看起来很糟糕)但它很有效,我很高兴.

之后几乎没有测试,我在我唯一的测试类上得到了java.lang.VerifyError.谷歌搜索和堆叠,它归结为外部库的错误或类路径错误.我没有使用任何外部.jars所以它可能是我的道路.

无论如何,这是我的问题:
使用JUnit在Android应用程序中单元测试逻辑的Proper Way™是什么?我根本无法找到任何资源:所有资源都用于测试UI部件或用于测试普通应用程序的单元.

我怎样才能单独测试我的逻辑?这甚至不需要设备运行,因为我不需要使用Android的任何部分.我在哪里进行测试?我需要更改什么,以便在我的项目目录中运行ant测试然后运行那些?

解决方法

很久以后我就成功了.

首先,我忽略了使用adb创建任何项目.

想象一下,我的包名为com.foo.bar.我在src / com / foo / bar / tests中创建了测试.在那里,编写常规的JUnit测试.确保将包com.foo.bar.tests放在测试类中.这是一个示例类:

package com.foo.bar.tests;

import com.foo.bar.baz.Foo;

import org.junit.*;
import junit.framework.*;
import static org.junit.Assert.*;


public class myTests extends TESTCase {

    public void testSomething() {
        Foo testFoo= new Foo();
        assertEqual(testFoo.getBar(),1);
    }
}

接下来是使用ant测试运行测试的情况.要实现此目的,请在最后一个右括号(< / manifest>)之前将以下内容添加到AndroidManifest.xml中:

<instrumentation android:name="android.test.instrumentationTestRunner"
                 android:targetPackage="com.foo.bar"
                 android:label="Tests for com.foo.bar"/>

你还需要

<uses-library android:name="android.test.runner" />

添加到您的<应用程序>部分.

我无法弄清楚需要改变什么才能在本地进行测试,而不是在设备上进行测试,但这是75%的答案,希望将来对我这样的人有所帮助.

编辑:
通过在build.xml中的最后一个导入下面添加以下内容,可以隐藏原始的ant测试行为:

<target name="test" >
       <junit>
           <!-- all your junit stuff here -->
       </junit>
   </target>

大佬总结

以上是大佬教程为你收集整理的单元测试Android应用程序逻辑全部内容,希望文章能够帮你解决单元测试Android应用程序逻辑所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。