[英]How to inject final class such as String into constructor of class annotated with @InjectMocks in Mockito 3
[英]Mockito InjectMocks with new Initialized Class Variables
这怎么工作? 根据我的理解,它不应该有。 LDAPGroupAccessor是在类中被新初始化的,或者可以在构造函数本身中被新初始化,它不是被注入的,不是构造函数的参数,不是Spring bean的注入。
我知道使用反射是可能的,但是injectMocks如何注入它? 这不是破坏DI的目的吗?
@Component
public class AuthorizationHandler {
private LDAPGroupAccessor groupAccessor = new LDAPGroupAccessor();
public isUserAuthorized(String userId, String groupId){
return groupAccessor.isUserInGroup(userId, ldapGroup);
}
}
public class AuthorizationHandlerTest {
@InjectMocks
private AuthorizationHandler authorizationHandler;
@Mock
private LDAPGroupAccessor groupAccessor = new LDAPGroupAccessor();
@Before
public void setup() {
String authorizedUser = "authorizedUser";
Mockito.when(groupAccessor.isUserInGroup("authorizedUser", "someGroup")).thenReturn(true);
}
@Test
public void test1() {
Assert.assertEquals(true, authorizationHandler.isUserAuthorized("authorizedUser", "someGroup"));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.