Java Spring安全测试失败,出现NullPointerException
使用Spring Security 3.2.5和Spring Security Test 4.0.0.M1工件,我无法成功运行以下单元测试:Java Spring安全测试失败,出现NullPointerException,java,spring,spring-security,Java,Spring,Spring Security,使用Spring Security 3.2.5和Spring Security Test 4.0.0.M1工件,我无法成功运行以下单元测试: @Test public void testRequestOAuthToken() throws Exception { this.mockMvc.perform(post("/oauth/token/") .param("grant_type", "password")
@Test
public void testRequestOAuthToken() throws Exception {
this.mockMvc.perform(post("/oauth/token/")
.param("grant_type", "password")
.param("client_id", "ios")
.param("username", "user")
.param("password", "123c86b3634342f")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.accept(MediaType.APPLICATION_JSON)
.with(user("ios").password("aabb03880fsddc665ffb9a0").roles("APP")))
.andDo(print())
.andExpect(status().isOk());
}
它会导致引发NullPointerException:
有什么建议吗?这是我的Spring单元测试配置:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration( locations = { "file:src/main/webapp/WEB-INF/applicationContext.xml", "file:src/main/webapp/WEB-INF/securityApplicationContext.xml" })
public class OAuthUnitTests {
@Autowired
private WebApplicationContext wac;
@Autowired
private Filter springSecurityFilterChain;
private MockMvc mockMvc;
@Before
public void setUp() {
this.mockMvc = webAppContextSetup(this.wac)
.addFilters(springSecurityFilterChain)
.build();
}
为什么使用Spring Security Test 4.0.0.M1而不是GA版本?是的,您应该使用最新版本,因为代码自M1以来发生了更改。此外,由于您有stacktrace,一个好的起点是查看NPE可能是由什么引起的。
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration( locations = { "file:src/main/webapp/WEB-INF/applicationContext.xml", "file:src/main/webapp/WEB-INF/securityApplicationContext.xml" })
public class OAuthUnitTests {
@Autowired
private WebApplicationContext wac;
@Autowired
private Filter springSecurityFilterChain;
private MockMvc mockMvc;
@Before
public void setUp() {
this.mockMvc = webAppContextSetup(this.wac)
.addFilters(springSecurityFilterChain)
.build();
}