使用mokito避免在单元测试期间运行代码块

时间:2016-11-24 07:53:30

标签: android unit-testing junit mockito

我在Android中使用Mokitio来运行单元测试用例。

  • 我想做的事:onCreate事件中有一段代码 活动
  • 我试图在运行单元测试期间不运行此代码块 案例并定期在应用程序中运行。
  • 是否可以使用mokito执行此类操作,因为mokito会同步活动生命周期

1 个答案:

答案 0 :(得分:0)

这里适当的解决方案是改变你的设计。您不应该考虑代码块,而是考虑功能

防止某些x行代码在某个特定环境中运行但不在某些其他上下文中的方法是使用适当的OO方法。

含义:首先创建一个界面来描述我们正在谈论的那些代码行的功能

public interface DoTheFoo {
   public void foo(Bar bar);
}

然后你创建一个"生产"该接口的实现 DoTheFooImpl (作为副作用:您也可以编写适当的单元测试)。

最后:在您的类中需要该功能,使用依赖注入来获取提供 DoTheFoo 接口的对象。在您的生产环境中,这将是 DoTheFooImpl 对象;但是对于你的单元测试,你只需要为它创建一个模拟 - 配置为不执行任何操作来调用foo()。

当然,这听起来像是一些工作;但重点是:目前,你的设计有些不足。而不是试图寻找肮脏的黑客/解决方法,考虑查看您的设计,以确定一种更优雅的方式来解决您的问题。