Этот код работает, но я хочу проверить его надежность/хорошую практику/идиоматику. Фон: Я следую инструкциям Майкла Хартла по рельсам, и я работаю над 8.5 (упражнения для главы 8), отделяя тесты от реализации.Является ли это рубино-на-рейли rspec кодом хорошей практикой?
В user_pages_spec.rb я не как код
expect { click_button submit }.not_to change(User, :count)
С change(User, :count)
выглядит немного рубить. Таким образом, в спецификации/поддержки/utilities.rb я писал:
def create_user
change(User, :count)
end
И я заменил строку в user_pages_spec.rb с
expect { click_button submit }.not_to create_user
Было ли это разумно?
Что делать, если позже вы будете писать тесты для заказов и книг? Будете ли вы создавать похожие методы 'create_order' и' create_book'? ИМХО, это лишнее увеличение сложности/LOC. –
Если этот метод 'create_user' используется повсюду, я не верю, что он помогает пониманию, достаточному для оправдания. Если это так, id рассмотрит пользовательский совпад, который принял класс в любом случае, или вывел класс из класса теста или субъекта. –
Что вы думаете о нижеследующем ответе? – derekyau