ruby-on-rails - 对 Rails 初始值设定项中的 fixture 数据的依赖

标签 ruby-on-rails testing dependencies fixtures initializer

我有一个初始化程序,它设置在整个应用程序中使用的默认值。该值是一个 ActiveRecord 模型,我本质上是在应用程序的生命周期内缓存它:

@@default_region = Region.find_by_uri("whistler")

该记录保证在数据库中:它是被其他模型引用的 fixture 数据。这工作得很好,除了在每次测试运行之前都会清除数据库的测试环境中。 (我在边缘 rails 上运行,我认为这是最近的行为:我过去能够手动插入数据并在测试运行之间保留它。)我的 regions.yml 中也有记录固定装置文件,但固定装置在 Rails 初始值设定项完成后才会加载。

处理对 fixture 数据的这种依赖性的正确方法是什么?或者有更好的方法来构建这个吗?我不想使用 before_filter,因为在每个请求上重新加载它是没有意义的:除非在不同的部署上,否则它不会改变。

最佳答案

我会在region.rb中放入这样的内容:

def self.default_region
  @@default_region ||= Region.find_by_uri("whistler")
end

然后,您可以在任何需要的地方以 Region.default_region 的形式访问它,并且只查找一次 - 第一次调用它时 - 然后固定装置就位。

关于ruby-on-rails - 对 Rails 初始值设定项中的 fixture 数据的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562492/

相关文章:

ruby-on-rails - validates_uniqueness_of 范围为多列

ruby-on-rails - 在 ERB 中插入空格

去测试 : only run tests that contain a build tag?

Android/Gradle - 仅包含传递依赖项

javascript - 将 Ruby var 作为 Javascript 参数传递

ruby-on-rails - 将 postgres 数据库转储导入本地应用程序

symfony - 对 Symfony 测试实践的困惑 : functional vs integration testing

测试库 : How to get parent node that has a child with Text

asp.net - 如何对外部依赖项使用依赖项注入(inject)?

java - 编译项目中包含哪些 Maven 依赖范围?