Я думаю, что самое важное различие между ними заключается в их намерениях.
Позвольте мне попытаться объяснить это в заглушка WHY против ПОЧЕМУ mock
Предположим, я пишу тестовый код для общедоступного контроллера временной шкалы моего mac-клиента
Вот пример тестового кода
twitter_api.stub(:public_timeline).and_return(public_timeline_array)
client_ui.should_receive(:insert_timeline_above).with(public_timeline_array)
controller.refresh_public_timeline
Написав макет, вы обнаруживаете взаимосвязь взаимодействия объектов, проверяя, что ожидаемое удовлетворено, в то время как заглушка имитирует только поведение объекта.
Предлагаю прочитать эту статью, если вы хотите узнать больше о макетах: http://jmock.org/oopsla2004.pdf
В основном - нет.
база данных postgres находится здесь не как база данных по шаблону с разумной гарантией ее существования - так что любой сценарий, который не знает, куда подключиться, может подключиться к ней .
если вы удалите template1 - вы потеряете возможность создавать новые базы данных (по крайней мере, легко).
template0 существует как резервная копия на случай, если ваш template1 был поврежден.
Хотя я могу теоретически представить рабочая база данных без шаблонов * и базы данных postgres, меня беспокоит то, что я понятия не имею, чего (с точки зрения безопасности) вы хотите достичь, удалив их.
Вы можете удалить postgres, но не трогайте template0 или template1. База данных postgres создана для удобства.