Правило № 1 тестирования:
Прежде чем написать его, узнайте, в чем заключается цель вашего теста и что он пытается доказать.Если вы не знаете, что это доказывает, то это бесполезно:)
Как правильно сказали другие авторы, вы заглушаете интерфейс, а затем вызываете заглушку - это ничего не доказывает,ваш рабочий код работает.
Что такое заглушка?
Заглушки используются для предоставления постоянных значений для управления некоторыми аспектами тестируемого класса.Например, скажем, у вас есть CustomerService
, который имеет экземпляр типа ICustomerRepository
.Если вы хотите увидеть, что CustomerService
может корректно обработать ошибку, когда хранилище пусто, вы должны заглушить метод ICustomerRepository
GetCustomerById
, чтобы ничего не возвращать / null / выдать исключение, а затем убедиться, что CustomerService
метод сделал правильную вещь (например, вернуть клиенту не найденный результат).
Т.е. заглушка - просто соавтор, который помогает вам достичь определенного состояния / поведения, представляющего интерес.Мы тестируем CustomerService
, а отметка ICustomerRepository
просто помогает нам достичь нашей цели.
Вы не первый, кто задает этот самый вопрос :).Я обычно советую разработчикам проверять вручную их двойники теста .Это помогает понять все взаимодействия и то, что структура фактически делает для вас.