2013-09-12 3 views
0

Этот код работает, но я хочу проверить его надежность/хорошую практику/идиоматику. Фон: Я следую инструкциям Майкла Хартла по рельсам, и я работаю над 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 

Было ли это разумно?

+2

Что делать, если позже вы будете писать тесты для заказов и книг? Будете ли вы создавать похожие методы 'create_order' и' create_book'? ИМХО, это лишнее увеличение сложности/LOC. –

+0

Если этот метод 'create_user' используется повсюду, я не верю, что он помогает пониманию, достаточному для оправдания. Если это так, id рассмотрит пользовательский совпад, который принял класс в любом случае, или вывел класс из класса теста или субъекта. –

+0

Что вы думаете о нижеследующем ответе? – derekyau

ответ

1

Выполнение этого в значительной степени просто «обертывание» синтаксиса, я не думаю, что это действительно добавляет много кода. Код, который у вас был ранее, был не так уж плох, но, возможно, вы могли бы также подумать об этом:

expect { click_button submit }.to_not change{User.count} 
+0

Изменение {User.count} не работает, но я уверен, что исходный код был в порядке. – GabrielG

Смежные вопросы