建立在JUnit測試與Spring MockMVC,有兩種方法用於驗證爲一個Spring Security用戶用戶:@WithMockUser
創建具有提供的憑據的虛擬用戶,@WithUserDetails
需要一個用戶名並使用自定義的UserDetailsService
(UserDetailsServiceImpl
)將其解析爲正確的自定義UserDetails
實現。春季安全,JUnit的:@WithUserDetails在@Before
在我的情況下,UserDetailsService
從數據庫加載用戶。我想要使用的用戶被插入到測試套件的@Before
方法中。
但是,我的UserDetailsServiceImpl
找不到用戶。
在我@Before
,我插入這樣的用戶:
User u = new User();
u.setEMail("[email protected]");
u = userRepository.save(u);
而在UserDetailsServiceImpl
:
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = this.userRepository.findOneByEMail(username);
if (user == null)
throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username));
return user;
}
我如何使用@Before
與@WithUserDetails
創建一個帳戶?