我对 Rails 开发几乎是新手。我目前正在阅读 Avdi Grimm 的 Objects on Rails 以在我的 rails 应用程序中使用 #SOLID 设计,而不是被迫遵循一些会造成混乱和不可读的代码和设计的约定。
我想设置 nulldb 并在我的快速规范中使用它,这些规范正在测试应用程序的业务逻辑,但我无法让它工作。我在这里阅读了 nulldb GitHub 页面上的安装指南 -> https://github.com/nulldb/nulldb。我安装了 activerecord-nulldb-adapter gem 并将它也放入了我的 Gemfile 并运行了 bundle install 命令,所以它现在已经完全安装了。我有一个 spec_helper_lite.rb 文件,我在我的快速规范中使用它,所以我认为在其中设置 nulldb 是个好主意。这是我的 spec_helper_lite.rb 文件中 nulldb 部分的代码:
require 'nulldb_rspec'
def setup_nulldb
schema_path = File.expand_path("../db/schema.rb", File.dirname(__FILE__))
ActiveRecord::Base.establish_connection(:adapter => :nulldb,
:schema => schema_path)
NullDB.nullify(:schema => schema_path)
end
def teardown_nulldb
NullDB.restore
end
然后我在我的快速规范中需要这个 spec_helper_lite.rb 并在我的规范的方法之前和之后调用 setup 和 teardown nulldb 方法。当我运行规范时,我会收到错误未初始化常量 ActiveRecord::ConnectionNotEstablished (NameError)。我尝试了不同的方法,例如删除 setup_nulldb 中的建立连接行,我会得到同样的错误。我什至在我的 spec_helper_lite 中需要 'active_record' 只是为了看看会发生什么,然后我会收到 NullDB 模块的错误“未定义的方法无效”,显然规范变得完全缓慢导致需要 active_record。我搜索了很多关于如何设置 nulldb 的内容,我看到的所有内容都解释了如何设置它,但它对我不起作用。我使用 nulldb 版本 0.2.1、rails 3.0.0 和 rspec 2.0.1
感谢您对如何正确设置的帮助。提前致谢。
山姆