Как использовать заглушки в JUnit и Java?
Я работал с JUnit и Mocks, но мне интересно, каковы различия между Mocks и Stubs в JUnit и как использовать Stubs в JUnit, Java? И как насмешки, которые имеют EasyMock, Mockito и так далее, что использует Stubs в Java?
пожалуйста, приведите пример кода для заглушек в Java.
2 ответов
для использования заглушек в junit вам не нужны никакие фреймворки.
Если вы хотите заглушить какой-то интерфейс, просто реализуйте его:
interface Service {
String doSomething();
}
class ServiceStub implements Service {
public String doSomething(){
return "my stubbed return";
}
}
затем создайте новый объект заглушки и введите его в тестируемый объект.
Если вы хотите заглушить конкретный класс, создайте подкласс и переопределите методы stubbed:
class Service {
public String doSomething(){
// interact with external service
// make some heavy computation
return "real result";
}
}
class ServiceStub extends Service {
@Override
public String doSomething(){
return "stubbed result";
}
}
Это не имеет значения рамки или технологии, на мой взгляд. Насмешки и окурки можно определить следующим образом.
заглушка является контролируемой заменой существующей зависимости (или сотрудника) в системе. Используя заглушку, вы можете проверить свой код, не имея дело с зависимостью напрямую.
макет объекта является поддельным объектом в системе, которая решает, прошел ли модульный тест или не удалось. Он делает это, проверяя, является ли тестируемый объект взаимодействовал, как и ожидалось, с поддельным объектом.
возможно, эти изображения могут прояснить взаимодействия между заглушкой и макетом.