如果手机和平板电脑的行为不同,如何编写单元测试?

时间:2012-02-09 13:49:49

标签: android unit-testing

你们如何编写针对手机​​和平板电脑表现不同的Activities的单元测试?在平板电脑上有几个片段,在手机上它只有一个。您是否为每个屏幕尺寸编写了两个单独的测试套件,或者在单个测试中执行if/else个事项?

2 个答案:

答案 0 :(得分:0)

你不应该在单元测试中使用if / else(参见Conditional Test Logic smell)。它使您的测试难以阅读,并且无法明确您的测试正在进行的测试。

我会尽量减少屏幕尺寸之间的差异。如果两者都使用公共应用程序层,则可以为应用程序层编写单元测试并覆盖大部分代码。

如果您将差异分解为不同的类,则可以为这些类创建一个参数化的测试。

答案 1 :(得分:0)

根据“表现不同”的含义,您可以使用“values- {specifier}”格式根据更改标准的相同标准自动将变量设置为值(如字符串或ID)活动的行为。这将允许相同的测试代码在没有条件的情况下表现不同。

我认为另一个更奇怪的选择是在try中围绕一个断言块进行配置,并捕获AssertionException并将其他配置的断言放在catch块中。