2017-12-24 10 views
2

Ich habe einen Dienste-Klasse UserServiceImpl mit einem Verfahren creatUser()Unit-Test für Dienstleistungen

@Autowired 
    private UserRepository userRepository; 

    @Autowired 
    private RoleRepository roleRepository; 

    @Override 
    public User createUser(User user, Set<UserRole> userRoles) throws DataAccessException { 
     User localUser = userRepository.findByUsername(user.getUsername()); 

     if (localUser != null) { 
      LOG.info("user {} already exists. Nothing will be done.", user.getUsername()); 
     } else { 
      for (UserRole ur : userRoles) { 
       roleRepository.save(ur.getRole()); 
      } 
      user.getUserRoles().addAll(userRoles); 

      localUser = userRepository.save(user); 
     } 
     return localUser; 
    } 

Ich versuche, dies mit Unit-Test zu testen, aber nicht wissen, wie man das macht. Jede Hilfe würde ausreichen. Hier ist mein Testfall.

@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()); 


    } 

jetzt bin ich hier fest, und ich weiß nicht, wie man einen Satz als Parametereingabe passieren

Antwort

1

Sie können die Service-Schnittstelle

@Test 
     public void createUserTest() { 
      @Autowired 
      UserService userService; 
    //rest of code 

     } 

autowire, wenn Sie Ihre wollen einfügen werden zurückgerollt, setzen @Transactional auf Ihre Testmethode

+0

ja @Parviz Makari könnten Sie mit Code-Pässe oder einen Weg davon für mich zu verstehen, um Verständnis zu bekommen –

+0

, wie Sie pas s Argumente zu Ihrer Service-Methode? Machen Sie dasselbe in Ihrer Testmethode. –

+0

ok danke, du hast recht –