在Activity Junit测试期间使用Service存根



我正在为启动服务的活动编写Junit测试:

startService(new Intent(this, MyClass.class));

为了测试的目的,我想用存根类(MyStubClass.class)替换MyClass.class

我在SOF上做了大量搜索,但找不到解决方案。是否可以在不向应用程序添加测试相关代码的情况下进行交换?

在评论上述线程时,虽然我同意这篇文章的大部分内容,但我不确定我是否同意所有内容,甚至不确定是否需要进行如此精细的区分。在我看来,mock是运行时替换,stub是未完成的工作或依赖多态性而非实际替换的测试特定实现。但是,我不是专家,所以对我的意见持保留态度。在任何情况下,当您用模拟版本替换类时,都不需要在模拟实现中做任何花哨的事情。

不管怎样,以下是您要求的文档:http://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.html#mocks

我使用jmockit来存根我不关心实现的接口,用不抛出异常的存根替换Android存根实现,有时还用功能最低的实现替换这些存根。在我的情况下,我希望能够快速运行单元测试,这意味着在Emulator或物理设备之外运行它们。如果你有兴趣做这类事情,那么使用一个模仿包和Robolectric之类的东西是一个救命稻草。

最新更新