Android:使用单元测试验证行为

时间:2014-07-10 19:53:50

标签: java android unit-testing mockito jmockit

所以,让我说我的活动如下。假设所有生命周期事件等都已正确创建,在创建活动时也不例外。

public class ButtonClickActivity extends Activity implements OnClickListener {

... onCreate etc. ...

  @Override
  public void onClick(View v) {
      logInfo();
  }

  protected void logInfo() {
     Log log = new Logger();
     log.log('foo');
     ...
  }

}

你究竟如何测试onClickMethod调用callMyOtherMethod?你如何测试logInfo创建一个新的Logger和.log(' foo')?让我们假设您拥有所有框架。

我曾尝试使用Robolectric(这对于高级别测试很好,但实际上似乎并没有让您详细了解测试方法是否调用另一种方法)。

似乎你必须将它与模拟框架/注入一起使用,以便至少验证注入的对象行为。它不能测试新的建筑'因此,您不得不为每个对象强制使用工厂,即使对于您从其他框架中使用的对象等也是如此。

我已经使用JMockIt(允许您验证每个新构造等)进行了一次拍摄,但似乎还存在ByteCode操作的问题,如果它尝试重写字节码,它基本上会失败特别是Android活动和视图,以及其他问题。

所以我的问题是他们采取的策略是什么,而不是'它是一个实施细节'或者'不需要进行测试'?我确定你当然不想测试每一个细节方法调用,但让重要的方法调用未经验证也不是一个好的解决方案。

0 个答案:

没有答案