3

我正在使用AndroidAnnotations(2.5),我正在处理一个示例项目。AndroidAnnotations和单元测试

因为你可以用例如@EActivity@ViewById@Click这都将导致生成编译时的代码,我不知道人们会如何去创建单元测试/对于任何Android注解供电应用的功能测试来注解你的类。

我很想听听关于此事的一些意见。

干杯,

回答

3

我回答了类似的帖子here

有几个选项可供您选择。当然,你可以测试你的代码的前一代,我所说的是一种更单元测试的风格。这应该单独测试Java代码,最好不涉及生成的代码。

您也可以测试后代的代码。 AA生成的MyActivity_类可以在编译时直接实例化并相应地进行测试。我声称这是一种集成测试风格。虽然我认为测试总比不测试总是更好,但我认为对于集成测试,您应该在类似于生产的情况下在硬件上进行测试。这给你一个关于你的应用程序在现实世界中的行为的全貌。因此,对于集成测试,我更喜欢高层次的“一切正常”。

RobolectricRobotium可以在这两项工作中大有帮助。 Robolectric允许您在单元测试中实例化您的活动,而Robotium允许您直接在设备上测试硒风格。回想一下,我更喜欢在没有生成代码的情况下大量测试我的代码,然后进行一些轻量集成测试,以确保一切正常运行在一起。

+0

基本上,我会更倾向于单元测试生成的代码,因为这是将要执行的代码,并且您将被打包到您的apk中并在Play商店中进行部署。这有意义吗? –

+0

对我有意义。这是我在第二段中描述的场景。 –

+0

另请参阅[本答案](http://stackoverflow.com/a/10666453/703646)关于@johncarl指出的帖子。 –