gpt4 book ai didi

java - @Mock 和@InjectMock 用例

转载 作者:行者123 更新时间:2023-11-29 05:34:31 25 4
gpt4 key购买 nike

@Mock 和@InjectMock 是否为我的测试类中的每个测试创建了一个新的模拟值?想知道这是如何工作的,如果它没有创建新的模拟值,我是否必须使用 reset ?

最佳答案

@Mock is shorthand for Mockito.mock(Foo.class);

您使用它来初始化模拟。

@InjectMocks is shorthand for MockitoAnnotations.initMocks(this) 

您可以使用它来使用您创建的所有模拟设置初始化您的类!

示例测试设置

这将为您编写的每个测试 (@Test) 提供一个干净的设置。

public class FooTest {
private Foo foo = new Foo();

@Mock
private Bar bar;

@Before
public void setup() {
initMocks(this);
}

@Test
public void testSetupOk() { // delete this test once it passes
assertNotNull(foo);
assertNotNull(bar); // this will fail if you remove @Mock
}
}

您可以一起使用这些注释来正确设置被测类。

请注意,您仍然需要配置模拟以返回所需的行为! (请参阅 API documentation 中的 Mockito.when)。

关于java - @Mock 和@InjectMock 用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com