Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务的单元测试_Java_Unit Testing_Testing - Fatal编程技术网

Java 服务的单元测试

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(“用户{}已存在。将不执行任何操

我有一个服务类UserServiceImpl,其方法为creatUser()

@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
        }