大佬教程收集整理的这篇文章主要介绍了单元测试Android应用程序逻辑,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在任何情况下,尝试运行任何东西,我尽可能多地和教程一起玩.它要求测试目录与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,请注明来意。