单元测试Android应用程序逻辑

单元测试Android应用程序逻辑,第1张

概述想要为我的应用程序编写一些测试,我偶然发现了 Android testing pages.经过相当长的阅读,很快就发现我可以从中获得的唯一信息是有关如何测试UI /活动的信息.我真正想要的是用简单的蚂蚁测试来测试我的逻辑的方法,最好是甚至不涉及设备.我应该在这个阶段提到我没有使用Eclipse,而且令人非常难过的是,Android上99%的Java资源都假设人们这样做. 在任何情况下,尝试运行任何 想要为我的应用程序编写一些测试,我偶然发现了 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应用程序逻辑所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存