Android 避免在使用mokito的单元测试期间运行代码块
我正在android中使用Mokitio来运行单元测试用例。Android 避免在使用mokito的单元测试期间运行代码块,android,unit-testing,junit,mockito,Android,Unit Testing,Junit,Mockito,我正在android中使用Mokitio来运行单元测试用例。 我想做的是:在onCreate事件中有一个代码块 活动内容 我试图在运行单元测试时不运行这段代码 案例,并在应用程序期间定期运行 是否可以使用mokito执行类似的操作,因为mokito为活动生命周期进行同步 正确的解决方案是稍微改变一下您的设计。您不应该考虑代码块,而应该考虑功能 防止某些x行代码在特定环境中运行,但不在其他上下文中运行的方法。。。是通过使用适当的面向对象方法 含义:首先创建一个接口,描述我们正在讨论的代码行的功
- 我想做的是:在
事件中有一个代码块 活动内容onCreate
- 我试图在运行单元测试时不运行这段代码 案例,并在应用程序期间定期运行
- 是否可以使用
执行类似的操作,因为mokito为活动生命周期进行同步mokito
- 正确的解决方案是稍微改变一下您的设计。您不应该考虑代码块,而应该考虑功能
防止某些x行代码在特定环境中运行,但不在其他上下文中运行的方法。。。是通过使用适当的面向对象方法
含义:首先创建一个接口,描述我们正在讨论的代码行的功能:
public interface DoTheFoo {
public void foo(Bar bar);
}
然后创建该接口的“生产”实现DoTheFooImpl(这是一个副作用:您可能还能够为其编写适当的单元测试)
最后:在需要该功能的类中,使用依赖注入来获取提供DoTheFoo接口的对象。在您的生产环境中,这将是一个DoTheFooImpl对象;但是对于单元测试,您只需为它创建一个模拟,配置为在调用foo()时不执行任何操作
当然,这听起来像是一点工作;但问题是:目前,你的设计有缺陷。而不是尝试去寻找肮脏的黑客/解决办法,考虑看你的设计,以确定一个更优雅的方式来解决你的问题。 < P>这里正确的解决方案是改变你的设计一点。您不应该考虑代码块,而应该考虑功能 防止某些x行代码在特定环境中运行,但不在其他上下文中运行的方法。。。是通过使用适当的面向对象方法 含义:首先创建一个接口,描述我们正在讨论的代码行的功能:
public interface DoTheFoo {
public void foo(Bar bar);
}
然后创建该接口的“生产”实现DoTheFooImpl(这是一个副作用:您可能还能够为其编写适当的单元测试)
最后:在需要该功能的类中,使用依赖注入来获取提供DoTheFoo接口的对象。在您的生产环境中,这将是一个DoTheFooImpl对象;但是对于单元测试,您只需为它创建一个模拟,配置为在调用foo()时不执行任何操作
当然,这听起来像是一点工作;但问题是:目前,你的设计有缺陷。而不是尝试去寻找肮脏的黑客/解决办法,考虑看你的设计,以确定一个更优雅的方式来解决你的问题。