Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在测试期间更新轨道固定装置_Ruby On Rails_Redmine_Redmine Plugins - Fatal编程技术网

Ruby on rails 在测试期间更新轨道固定装置

Ruby on rails 在测试期间更新轨道固定装置,ruby-on-rails,redmine,redmine-plugins,Ruby On Rails,Redmine,Redmine Plugins,我在Rails中进行了功能测试(这是一个Redmine插件),这给我带来了问题: fixtures :settings test 'error is shown on issues#show when issue custom field is not set up' do setting = settings(:release_notes) setting.value = setting.value. update('issue_required_field_id' =>

我在Rails中进行了功能测试(这是一个Redmine插件),这给我带来了问题:

fixtures :settings

test 'error is shown on issues#show when issue custom field is not set up' do
  setting = settings(:release_notes)
  setting.value = setting.value.
    update('issue_required_field_id' => 'garbage')
  #setting.save!

  get :show, :id => '1'

  assert_response :success
  assert_select 'div.flash.error',
    :text => I18n.t(:failed_find_issue_custom_field)
end
设置模型有字段
名称
;在此特定设置中,该值是序列化的哈希。此哈希中的一个键是
issue\u required\u field\u id
,用于在显示操作期间查找特定的
IssueCustomField
。如果没有具有此ID的自定义字段(不应该有,因为我已将其设置为字符串“垃圾”),那么它应该呈现div.flash.error来解释发生了什么

不幸的是,
setting.save被注释掉,测试失败,因为设置似乎没有更新——使用了该设置的工作值(如settings.yml中所示),并且没有出现“div.flash.error”。如果我取消注释它,这个测试通过,但是其他测试失败,因为在测试结束时没有回滚更改

有没有一种方法可以像这样修改夹具,以便在测试结束时回滚任何更改


注意:
self.use\u transactional\u fixtures
ActiveSupport::TestCase
中被明确设置为true(这个测试用例是一个
ActionController::TestCase
,它是一个子类)

我知道了发生了什么——测试实际上是事务性的,但Redmine的设置类有自己的缓存。正在添加
Setting.clear\u缓存到测试的
设置
修复了它