Скажем, у меня есть класс и метод, определенные следующим псевдо кодом
class Book
def quick_info
return title + " " + author
end
end
Если я пишу модульный тест для какого-то другого класса, которыйиспользует этот класс Book
, я бы создал заглушку для вызова метода Book.quick_info
.
Теперь я полагаю, что проблема возникнет, если мой класс Book
изменится, например, если метод quick_info
был переименован в short_description
.Мой модульный тест все еще будет использовать quick_info
, и похоже, что мои тесты проходят просто отлично, хотя на самом деле он должен давать сбой.
Мне было интересно, есть ли что-то, что можно запустить, чтобы проверить, что заглушки/ mocks в моем тесте были составлены из правильных классов и методов.Может быть, что-то подобное можно запустить на сервере непрерывной интеграции, чтобы убедиться, что все совпадает?
Хммм ... и теперь мне пришла в голову мысль.Возможно ли вообще создать ложный метод, который не существует?Если нет, то весь этот вопрос является спорным.
РЕДАКТИРОВАТЬ:
Я только что попробовал это с помощью rspec 2, и я знаю, что я могу создать экземпляр Book
исоздайте метод с именем i_dont_exist
, и я могу назвать его просто отлично.Так что мой вопрос остается в силе.Есть ли способ проверить, соответствуют ли мои макеты / заглушки классам / объектам, которые действительно существуют?