mockito怎么把一个mock的类注入到另一个mock的类中
时间: 2023-08-09 18:05:00 浏览: 69
可以使用Mockito的`@InjectMocks`注解来自动注入mock对象到被测试对象中。
假设我们有两个类,类A和类B,类B依赖于类A:
```java
public class A {
public void doSomething() {
// do something
}
}
public class B {
private A a;
public B(A a) {
this.a = a;
}
}
```
我们希望测试类B的某个方法,但是我们不想真正创建一个A对象,而是使用Mockito创建一个A对象并将其注入到B对象中。以下是如何使用Mockito注入mock对象:
```java
public class BTest {
@Mock
private A aMock;
@InjectMocks
private B b;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testMethodInB() {
// some test code
}
}
```
在这里,我们使用`@Mock`注解来创建一个A对象的mock实例,并使用`@InjectMocks`注解来创建B对象实例并自动将A对象的mock实例注入到B对象中。注意,在使用`@InjectMocks`注解时,Mockito会尝试自动注入所有在测试类中声明的mock对象。因此,在使用`@InjectMocks`注解时,要确保被测试类的构造函数中依赖的所有对象都是mock对象。