我有一个 Article 类的 Rails 单元测试,我有一个断言来测试创建!方法。我基本上想从 .yml 数据创建对象。像这样:
在我的 yaml 文件 .../test/fixtures/articles.yml 中:
one:
id: 1
title: MyText
abstract: MyText
place: MyString
subject: MyString
在 article_test.rb 中:
def test_create_a_new_article
assert Article.create!(articles(:one))
end
我不断收到 NoMethodError: undefined method
stringify_keys' for #<\Article:0x0000010819b640> 我对此并不感到惊讶,但如何调用创建!来自 articles(:one) 创建的 Article 实例?我通过在哈希中传递参数来在我的运行代码中实例化文章。如果我能做类似的事情就太好了:a
ssert Article.create!(articles(:one).to_hash)`
感谢您的帮助。
最佳答案
当您调用 articles(:one) 时,您将返回一个 Article 对象,该对象具有 fixture 中定义的属性。这意味着您可以按原样使用它,即
articles(:one).some_method
或者把它赋给一个变量
article = articles(:one)
基本上是 rails fixture 魔法
编辑
Article.create articles(:one).attributes.except("id")
不确定是否需要排除 id
关于ruby-on-rails - 从 .yml 创建一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25193172/