Sobes.tech
Junior — Middle

Ar naudojote Mockito sistemos paslėptiems ar viduje esančioms neaiškioms komponentėms testuoti?

sobes.tech AI

Atsakymas iš AI

Taip, Mockito dažnai naudojamas slėptų arba vidinių sistemos komponentų testavimui, ypač kai reikia izoliuoti testuojamą klasę nuo priklausomybių.

Pavyzdžiui, jei klasė priklauso nuo privačios paslaugos ar vidinio komponento, kuris yra sudėtingas ar nereikalingas inicijuoti teste, Mockito leidžia sukurti šio komponento suklastotą objektą ir nustatyti jo elgseną.

Mockito naudojimo pavyzdys, kaip suklastoti priklausomybę:

public class UserService {
    private UserRepository userRepository;

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

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

// Teste
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());

Šiuo būdu Mockito padeda testuoti logiką, kuri nepriklauso nuo tikrų vidinių įgyvendinimų.