在 Spring Boot 1.4.1 中,我想对使用 @PreAuthorize 访问受限的服务方法进行单元测试(而不是集成测试)。
问题是从 Eclipse 启动测试独奏时似乎没有检查 @PreAuthorize (尚未尝试使用 mvn test)。
然后,如果我奇迹般地设法正确运行测试,我将尝试使用 StudyService 接口,而不是 impl。
这是我的测试课:
@RunWith(MockitoJUnitRunner.class)
public class TestMethodSecurity {
private static final Long STUDY_ID = 1L;
@Mock
private StudyRepository studyRepository;
@InjectMocks
private StudyServiceImpl studyService;
@Before
public void setup() {
given(studyRepository.findOne(STUDY_ID)).willReturn(ModelsUtil.createStudy());
}
@Test
public void findByIdWithoutAccessRightTest() {
Study study = studyService.findById(STUDY_ID);
}
}
这是服务:
@Service
public class StudyServiceImpl implements StudyService {
@Autowired
private StudyRepository studyRepository;
@Override
@PreAuthorize("hasAnyRole('DOES NOT EVENT CHECK SYNTAX")
public Study findById(final Long id) {
return studyRepository.findOne(id);
}
}
测试成功,这是失败。
拉丁的传说
忽然笑
慕码人8056858
相关分类