有关如何开始在Android中进行测试的说明似乎不一致:
http://developer.android.com/guide/topics/testing/testing_android.html
它说:
测试项目是一个目录或Eclipse项目,您可以在其中为测试包创建源代码,清单文件和其他文件.Android SDK包含带有ADT的Eclipse工具以及为您创建和更新测试项目的命令行.这些工具创建用于源代码和资源的目录以及测试包的清单文件.
然而,它说:
您可以在文件系统中的任何位置创建测试项目,但最好的方法是添加测试项目,使其根目录test /与主应用程序项目的src /目录处于同一级别.这有助于您找到与应用程序关联的测试.
然后它显示了一个项目结构,其中所有测试都在您的主项目下,而不是单独的项目.但是,如果您使用ADT插件,它将创建一个单独的项目.哪个是正确的,或者是最佳实践 - 单独的单元测试项目,还是同一个项目?
在单独的项目中创建单元测试正确的Android方法吗?
我的意见,是的,这是最好的方法
如果使用相同的项目manifest,你的一些额外的代码,你需要在你的src中添加额外的类.
如果您创建一个单独的项目,它将不会影响我们的主项目代码.通过功能方式,两者将以相同的方式工作.
那么为什么要混淆:)
编辑:要使用相同的项目,您需要在清单文件中添加以下内容
<manifest>
<!-- For doing JUnit test--->
<instrumentation
android:targetPackage="com.your.package.where.testclasses"
android:name="android.test.InstrumentationTestRunner" />
<application ...>
<activity..>
<!-- For doing JUnit test -->
<uses-library android:name="android.test.runner" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
可以在单独的项目中创建单元测试,但我完成它的方式只是使用不同的包.
这允许您在创建断言字段时轻松引用您可能需要的任何类.
我这样做的方法是有一个名为com..Data.Tests的包,并使用以下命令来定义我的测试:
public class AddressValidationTest extends
ActivityInstrumentationTestCase2<InitialActivity>
Run Code Online (Sandbox Code Playgroud)
这允许您将所有内容保留在一个项目中.
希望这可以帮助!
编辑:您的混淆可能来自项目与包与类之间的Java术语.我认为在这种情况下,当他们说"项目"时,他们指的是能够运行单元测试的独立类.
编辑2:您不应该需要多个清单.
在清单中包含以下任何测试活动:
<uses-library android:name="android.test.runner" />
<instrumentation android:label="All Tests"
android:name="com.App.Data.Tests.MyInstrumentationTestRunner"
android:targetPackage="com.App.UI" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4774 次 |
| 最近记录: |