gpt4 book ai didi

spring - 如何在 TestNG 中使用 Spring WithMockUser 注释

转载 作者:行者123 更新时间:2023-12-05 00:42:54 26 4
gpt4 key购买 nike

我将 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) {
//
}
}
}
authorizer.checkPermission内部使用 SecurityContext获取当前用户名。但是在调试时, authentication对象是 null .不知道为什么在使用 WithMockUser 时它没有被填充.

最佳答案

您可以尝试将以下注释添加到您的测试类中。这对我有用。

@TestExecutionListeners({WithSecurityContextTestExecutionListener.class})

可以在此处找到示例: https://github.com/sbrannen/spring-events/blob/master/src/test/java/com/sambrannen/spring/events/SimpleScenarioTestNgTests.java

关于spring - 如何在 TestNG 中使用 Spring WithMockUser 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44126701/

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