Я пишу тесты для представления рельсов, позволяет сказать, что мнение это что-то вроде:Как мне высмеять конкретный атрибут модели для проверки вида Rails?
show.json.rep
r.element :user, @user do |u|
r.element :id, u.id
r.element :somefield1, u.somefield1
// a lot of fields here
r.element :somefield100, u.somefield100
end
Теперь я хочу, чтобы проверить JSON он генерирует и просто интерес в поле id
.
Если мой тестовый код написан как:
describe "show.json.rep" do
it "will generate json with correct id" do
assign(:user, mock(:user, :id=>111))
render
puts "######### generate json:"
puts rendered
...
end
end
Это будет отчеты такая ошибка:
Failure/Error: render
ActionView::Template::Error:
Mock :user received unexpected message :somefield1 with (no args)
Я не хочу издеваться все поля, как somefieldX
, что я не интерес, поэтому я попытался as_null_object
:
describe "show.json.rep" do
it "will generate json with correct id" do
assign(:user, mock(:user, :id=>111).as_null_object)
render
puts "######### generate json:"
puts rendered
...
end
end
На этот раз, он не сообщает эта ошибка, но странно, rendered
значение null
!!
######### generate json:
null
Я не уверен, почему и как его исправить? Или есть ли другой способ позволить мне просто предоставить интересующее поле?