Jam*_*vec 9 junit android android-testing
我正在接管一个Android项目,我希望为项目引入单元测试,以帮助避免可能的回归.
对于普通的java项目,我有两个源文件夹:src
和test
.在src
源文件夹中包含了我所有的源文件和我的test
源文件夹中包含了我所有的单元测试,我相信这是保持独立的测试从源头非常标准,所以你不必与他们发货.
我一直在网上阅读,Android应用程序的方法看起来有点不同.几个例子讨论为a设置第二个项目android test project
然后引用它android project
.
我想确认一些事情:
有没有第二个项目用于测试在测试android项目时要做的适当的事情,或者我只是找到了不好的例子?
是的,通常会有一个单独的"测试项目"来测试Android特定代码.http://developer.android.com/tools/testing/testing_android.html
所有单元测试都应该是android单元测试吗?例如,是的,他们应该都是,或者我不应该在android单元测试和junit之间混合,因为junits具有较少的开销.
你通常会有一个混合,因为你不能在标准的JVM上使用常规的'JUnit测试Android特定的代码(不是没有一些帮助库,稍后会有更多内容).
在实践中,我发现将应用程序划分为普通的JVM组件和Android部分是有意义的.例如,如果您需要与REST API进行通信,则可以使用单独的组件来执行此操作,而且只使用普通的Java.使用标准JUnit可以轻松测试这些类型的组件.这种类型的架构还可以更清晰地分离责任,并且通常也更容易理解和维护设计.(此类组件可以作为常规JAR包含在您的Android应用中.)
android单元测试对junit测试有什么额外的好处?例如处理模拟器等
Android测试可能会很慢而且很痛苦,因为完整的Android测试会在模拟器(或设备)中运行Android堆栈.但是,Android测试对于测试特定于Android的应用程序部分(例如上下文/活动/服务等)是必需的.
由于本机Android测试的繁琐和缓慢的性质,已经创建了几个框架,这些框架模拟或存储SDK的部分并采取不同的方法来提供帮助.例如,您可能需要研究Robolectric和Robotium.(这些都各有利弊.)
归档时间: |
|
查看次数: |
2946 次 |
最近记录: |