我有以下服务类别:
@Component
public class ABC {
@Autowired private SomeClass assumeRoles;
@Override
public @NotNull Optional<Something> translate(int id) {
// Some Code
SomeClass result = assumeRoles.getRole(id);
}
}
现在我想为我的类编写 Junit,我不希望 Role.getRole(id)
被调用,而不是我想用一些虚拟的东西来模拟这个函数调用值。
那我可以这样做吗?
我的 Junit 类为
@RunWith(MockitoJUnitRunner.class)
public class ABCTest {
@InjectMocks
private ABC test = new ABC();
@Mock
private SomeClass assumeRoles;
@Test
public void testTranslate() {
ABC result = test.translate(id);
}
}
最佳答案
您已经将 SomeClass ShouldRoles
标记为 @Mock
,您可以如下模拟 Role.getRole(id);
语句。
Mockito.when(assumeRoles.getRole(Mockito.any(id))).thenReturn(someResult);
我在做出一些假设后回答了这个问题,我建议您改进提供的代码片段,并提供正确的变量和类名称。
关于java - 注入(inject) Autowiring 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58706355/