Tom*_*Tom 1 java spring unit-testing spring-mvc mockito
我使用Mockito和Spring 4进行了单元测试设置.我的测试看起来像这样:
@ContextConfiguration(classes = {
MyTestConfig.class,
SecurityConfig.class,
OAuth2Config.class
})
@RunWith(MockitoJUnitRunner.class)
public class ControllerAccessTests {
private MockMvc mockMvc;
@Autowired
private FilterChainProxy springSecurityFilterChain;
@Mock
private CreditCardPaymentService creditCardPaymentService;
@InjectMocks
private CreditCardRestController creditCardRestController;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders
.standaloneSetup(creditCardRestController)
.apply(springSecurity(springSecurityFilterChain))
.build();
when(creditCardPaymentService.doPreAuthPayment(any())).thenReturn(null);
}
@Test
//.... some unit tests
Run Code Online (Sandbox Code Playgroud)
使用如下所示的配置文件:
@Configuration
public class MyTestConfig {
@Bean
public FilterChainProxy springSecurityFilterChain(){
AntPathRequestMatcher matcher = new AntPathRequestMatcher("/**");
DefaultSecurityFilterChain chain = new DefaultSecurityFilterChain(matcher);
return new FilterChainProxy(chain);
}
}
Run Code Online (Sandbox Code Playgroud)
当我启动单元测试springSecurityFilterChain为空时,似乎配置文件MyTestConfig似乎没有加载.有任何想法吗?
干杯汤姆
如果你想使用mockito注释和弹簧注入,那么:
1)使用@RunWith(SpringJUnit4ClassRunner.class)
2)创建一个init方法:
@Before
public void init(){
MockitoAnnotations.initMocks(this);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
552 次 |
| 最近记录: |