鉴于Complex Form part III的代码,您将如何去测试虚拟属性?测试Rails模型的setter时,你如何模拟参数?
def new_task_attributes=(task_attributes)
task_attributes.each do |attributes|
tasks.build(attributes)
end
end
我目前正在测试它是这样的:
def test_adding_task_to_project
p = Project.new
params = {"new_tasks_attributes" => [{ "name" => "paint fence"}]}
p.new_tasks_attributes=(params)
p.save
assert p.tasks.length == 1
end
但我收到以下错误:
NoMethodError: undefined method `stringify_keys!' for "new_tasks_attributes":String
改善这个测试任何建议,将不胜感激。