Tec*_*nch 6 testng spring spring-test mockito springmockito
我将 Spring Boot 用于我的 Web 应用程序,并使用 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) {
//
}
}
}
Run Code Online (Sandbox Code Playgroud)
authorizer.checkPermission
内部使用SecurityContext
来获取当前用户名。但在调试时,authentication
对象是null
. 不知道为什么使用时它没有被填充WithMockUser
。
小智 3
您可以尝试将以下注释添加到您的测试类中。这对我有用。
@TestExecutionListeners({WithSecurityContextTestExecutionListener.class})
Run Code Online (Sandbox Code Playgroud)
可以在此处找到示例: https: //github.com/sbrannen/spring-events/blob/master/src/test/java/com/sambrannen/spring/events/SimpleScenarioTestNgTests.java
归档时间: |
|
查看次数: |
408 次 |
最近记录: |