Sobes.tech
Junior — Middle

Kas kasutasite Mockito süsteemi varjatud või sisemiselt ebaselgete komponentide testimiseks?

sobes.tech AI

Vastus AI-lt

Jah, Mockito kasutatakse sageli süsteemi varjatud või sisemiste komponentide testimiseks, eriti kui on vaja testitava klassi eraldamist sõltuvustest.

Näiteks, kui klass sõltub privaatservisest või sisemisest komponendist, mis on keeruline või soovimatu testis initsialiseerida, võimaldab Mockito luua selle komponendi võltsobjekti ja määrata selle käitumise.

Mockito kasutamise näide sõltuvuse võltsimiseks:

public class UserService {
    private UserRepository userRepository;

    public UserService(UserRepository repo) {
        this.userRepository = repo;
    }

    public User getUserById(int id) {
        return userRepository.findById(id);
    }
}

// Testis
UserRepository mockRepo = Mockito.mock(UserRepository.class);
Mockito.when(mockRepo.findById(1)).thenReturn(new User("John"));

UserService service = new UserService(mockRepo);
User user = service.getUserById(1);

assertEquals("John", user.getName());

Selle abil aitab Mockito testida loogikat, mis ei sõltu tegelikest sisemistest implementatsioonidest.