我使用Spring Boot作为我的网络应用程序,使用TestNG进行单元测试。以下是我尝试的单元测试
@ContextConfiguration
public class AuthorizerTest extends AbstractTestNGSpringContextTests {
@InjectMocks
private Authorizer authorizer = new Authorizer();
@Mock
private PermissionRuleRepository permissionRuleRepository;
@BeforeMethod
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
@WithMockUser
public void testCheckPermission() throws Exception {
try {
authorizer.checkPermission(null, PermissionLevel.Type.ACCOUNT_OTHER);
fail();
} catch (AccessDeniedException ade) {
//
}
}
}
authorizer.checkPermission
在内部使用SecurityContext
获取当前用户名。但在调试时,authentication
对象为null
。不确定为什么在使用WithMockUser
时没有填充。