mockito模拟构造函数
时间: 2024-08-14 20:04:02 浏览: 60
Mockito是一个流行的Java单元测试框架,它允许开发者模拟(mock)对象的行为,包括模拟其构造函数。当你想要测试一个依赖于特定构造函数的对象时,通常会创建一个mock对象,这样你可以控制它的初始化状态,而不是实际地创建新实例。
在Mockito中,通过`@InjectMocks`注解配合`MockitoAnnotations.initMocks()`方法可以自动初始化一个mock对象,如果该对象有构造函数参数。如果你想手动模拟构造函数,可以使用`mock()`或`spy()`方法结合`whenNew()`方法:
```java
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
@MockitoSettings(strictness = Strictness.LENIENT)
public class MyTest {
@Mock
private MyClass myClassWithConstructor;
@BeforeEach
public void setUp() {
// 模拟带有两个参数的构造函数
whenNew(MyClass.class).withArguments(argThat(new IsInstanceOf<String>()), anyInt())
.thenReturn(myClassWithConstructor);
}
// 使用mock对象进行测试...
}
```
在这个例子中,`whenNew()`方法用于指定当创建`MyClass`的新实例时,Mockito应该如何处理构造函数参数。`argThat()`和`anyInt()`是用来匹配构造函数参数的条件。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)