Java 服务的单元测试
我有一个服务类UserServiceImpl,其方法为creatUser()Java 服务的单元测试,java,unit-testing,testing,Java,Unit Testing,Testing,我有一个服务类UserServiceImpl,其方法为creatUser() @Autowired 私有用户存储库用户存储库; @自动连线 私人角色扮演者角色扮演者; @凌驾 公共用户createUser(用户用户,设置用户角色)引发DataAccessException{ User localUser=userRepository.findByUsername(User.getUsername()); if(localUser!=null){ LOG.info(“用户{}已存在。将不执行任何操
@Autowired
私有用户存储库用户存储库;
@自动连线
私人角色扮演者角色扮演者;
@凌驾
公共用户createUser(用户用户,设置用户角色)引发DataAccessException{
User localUser=userRepository.findByUsername(User.getUsername());
if(localUser!=null){
LOG.info(“用户{}已存在。将不执行任何操作。”,user.getUsername());
}否则{
for(UserRole-ur:userRoles){
roleRepository.save(ur.getRole());
}
user.getUserRoles().addAll(userRoles);
localUser=userRepository.save(用户);
}
返回本地用户;
}
我试图用单元测试来测试这一点,但不知道如何进行。
任何帮助都足够了。这是我的测试用例
@Test
public void createUserTest() {
UserServiceImpl usr = new UserServiceImpl();
User user = new User();
String[] SET_VALUES = new String[]{"ADMIN"};
UserRole userRole = new UserRole();
userRole.setRole(role);
Set<String> myset = new HashSet<String>(Arrays.asList(SET_VALUES));
ObjectMapper objectMapper = new ObjectMapper();
String[] GPXFILES1 = myset.toArray(new String[myset.size()]);
usr.createUser(user,myset.toArray());
}
@测试
public void createUserTest(){
userserviceinpl usr=新的userserviceinpl();
用户=新用户();
String[]SET_VALUES=新字符串[]{“ADMIN”};
UserRole UserRole=新的UserRole();
userRole.setRole(role);
Set myset=newhashset(Arrays.asList(Set_值));
ObjectMapper ObjectMapper=新的ObjectMapper();
String[]GPXFILES1=myset.toArray(新字符串[myset.size()]);
usr.createUser(user,myset.toArray());
}
现在我被困在这里,我不知道如何将集合作为参数输入传递您可以插入服务接口
@Autowired UserService userService;
@Test
public void createUserTest() {
//asserts
}
在这种情况下,您正在进行集成测试,而不是单元测试。对于单元测试,您必须模拟对象,例如,您可以使用Mockito框架。yes@Parviz Makari您能帮助我理解如何将参数传递给您的服务方法吗?在测试方法中也要这样做。
@Autowired UserService userService;
@Test
public void createUserTest() {
//asserts
}