Ruby on rails 如何在集成测试中更改夹具值

Ruby on rails 如何在集成测试中更改夹具值,ruby-on-rails,ruby,ruby-on-rails-4,testing,integration-testing,Ruby On Rails,Ruby,Ruby On Rails 4,Testing,Integration Testing,我正在编写一个集成测试,在测试中的某个点上,我希望更改夹具的两个值。我该怎么做 我尝试了以下方法: @organization1.toggle!(:subscription) @organization1.expires = Time.zone.now + 50.days 然而,这似乎不起作用。虽然放置@organization1和放置@organization1.expires(见下文)确认新值,但显示组织配置文件的放置@response.body仍显示旧值(使测试失败)。我做错了什么 测试

我正在编写一个集成测试,在测试中的某个点上,我希望更改夹具的两个值。我该怎么做

我尝试了以下方法:

@organization1.toggle!(:subscription)
@organization1.expires = Time.zone.now + 50.days
然而,这似乎不起作用。虽然
放置@organization1
放置@organization1.expires
(见下文)确认新值,但显示组织配置文件的
放置@response.body
仍显示旧值(使测试失败)。我做错了什么

测试代码的一部分:

get organization_path(@organization1)
...
@organization1.toggle!(:subscription)
@organization1.expires = Time.zone.now + 50.days

get organization_path(@organization1) # So that it reloads the screen with the new values

puts @organization1.subscription      # Has the new value
puts @organization1.expires           # Has the new value
puts @response.body                   # Still has the old values

修改值后需要保存对象。因此,改变:

@organization1.toggle!(:subscription)
@organization1.expires = Time.zone.now + 50.days
致:


也许您需要在更新值后保存它?您将如何保存?@organization1。设置过期后,请在线保存。
@organization1.toggle!(:subscription)
@organization1.expires = Time.zone.now + 50.days
@organization1.save