2015-08-21 58 views
2

说类A依赖于B测试,并且我想测试类A.喷吹嘲笑使用Dagger2

我创建用于类A的测试中,我想嘲笑B.

B类使用Dagger2(使用模块和组件)注入到A类中。意思是,A类有一个类成员:

@Inject 
B mB; 

在我的测试类中,我在setUp()方法中创建了一个A实例。

如何向A提供B类的模拟实例?

回答

0

如果您通常使用Dagger注入依赖项,则需要使用模拟构建风格来提供模拟实现。通常这是通过用MockModule替换类似ProdModule的东西来完成的,然后@提供一个模拟实现,而不是模拟或测试风格。

否则,一个好的测试选项是Mockito,如果你想保证你的模拟返回你想要的,所以你不必担心模拟实现有一个错误。

+0

我不明白如何建立口味可以帮助我在这里。我是否需要在主代码和测试文件夹中为每个具有我想测试的依赖性的类添加一个模块和一个组件? – dors