首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带载波图像的Rails Rspec测试

带载波图像的Rails Rspec测试
EN

Stack Overflow用户
提问于 2016-10-04 09:12:13
回答 1查看 1.5K关注 0票数 1

我写了一个API,它可以返回最新的5通讯和它的图像,但我仍然坚持编写它的rspec测试。

首先,这里是模型之间的关系。

代码语言:javascript
复制
Newsletter has_many NewsletterImages
NewsletterImage belong_to Newsletter

其次,我认为我需要在测试数据库中创建一些数据,所以我用rspec文件编写了以下代码。

代码语言:javascript
复制
7.times do |i|
  n = Newsletter.create(title: "Test#{i}", content: "TestContents#{i}")
  2.times do |i|
    ni = NewsletterImage.create(newsletter_id: n.id, order: i)
    ni.image = File.open('xxx.png')
    ni.save
  end
end

所以,我需要上传文件在非常测试?是否有更好的方法来生成数据和测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 09:56:06

最好使用工厂女孩来生成测试数据。这样,您就可以编写干净的测试,例如

代码语言:javascript
复制
# /spec/factories/newsletter_factory.rb
FactoryGirl.define do
  factory :newsletter do
    title "My newsletter"
    content "Some content"
  end
end

# /spec/factories/newsletter_image_factory.rb
FactoryGirl.define do
  factory :newsletter_image do
    newsletter
    image fixture_file_upload( Rails.root + 'spec/fixtures/images/example.jpg', "image/jpg")
  end
end

# spec/models/newsletter_spec.rb
image = create :newsletter_image
expect(image.newsletter.title).to eq 'My Newsletter'

了解了如何在工厂定义文件中创建模型的所有细节之后,就很容易在多个测试中共享代码。

有关向“工厂女孩”定义中添加载波文件的更多详细信息,请查找其他答案,如以下所示:https://stackoverflow.com/a/9952914/693349

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39848413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档