Я новичок в модульном тестировании, и мой ясень рекомендовал Mockito. Я исследую этот инструмент, но имеющий некоторую путаницу, как:Зачем нам нужно создавать макет?
Почему нам нужно создать фиктивный объект в то время как мы можем создать реальный объект любого класса.
Почему мы устанавливаем поведение любого метода, используя stubbing как условие «когда и тогда», в то время как разработчик задает поведение метода.
Если мы выполняем stubbing любого метода, тогда он будет статичным, если разработчик изменит код этого метода, тогда его влияние не появится в нашем тестовом примере, оно всегда будет проходить.
Например:
TestingServices test = Mockito.mock(TestingServices.class);
// define return value for method getUniqueId()
System.out.println("unique id is "+test.getUniqueId());
when(test.getUniqueId()).thenReturn(44);
assertEquals(test.getUniqueId(),44);
В коде выше фрагмент кода assertEquals
всегда будет проходить, изменяет ли разработчик кода или нет.
Ваш тест является плохим примером, потому что это блок тестирования то же самое он насмешливо. В реальном примере вы должны выполнить тестирование A путем насмешивания B, чтобы вы изолировали поведение A и наоборот. Тогда у вас будут тесты интеграции на более высоком уровне, которые проверяют правильность взаимодействия A и B, когда они не издеваются. – jonrsharpe
Привет, Jonrsharpe, Спасибо, что дайте мне ans..actually мое беспокойство - это то, почему нам нужно уклоняться от макета объекта и укутывания ?? пожалуйста, объясните, что ваша помощь очистит мои сомнения. –
Привет, Exoddus, можете ли вы дать мне больше примеров, когда мы создаем макет или когда это не нужно для его создания. –