gpt4 book ai didi

ruby - 如何在 Rails 之外将 mock_models 与 RSpec 一起使用?

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:19 25 4
gpt4 key购买 nike

我目前正在开发一个由 Redis 数据库、EventMachine 和 Sinatra(用于轻量级 API)组成的 Ruby 项目。我们正在使用 RSpec 进行测试,到目前为止,一切都很顺利。

但是,现在我们需要开始(最低限度地)与 MySQL 数据库对话。我们决定走 ActiveRecord 路线(只是因为它好!)并且到目前为止一切都很顺利。但是,我们的测试遇到了一个小问题。我在网上找到了一些使用 mock_modelmock 与 RSpec 的资源,但是,我不断得到:

undefined method `mock_model'
undefined method `mock'

错误。在不安装整个 Rails 框架的情况下,我需要使用什么 gem 才能使它们工作(看起来有点矫枉过正)。

我应该使用哪些其他模拟/stubing 方法/gem 来模拟我的 AR 模型?我真的很喜欢语法的灵 active ,例如:

@user = double(NS::UserAccount)
@car = double(NS::Car)
NS::UserAccount.stub(:find).with(@valid_user_id).return(@user)
NS::Car.stub(:find).with(@valid_car_id).return(@car)



更新

我的 Gemfile 如下所示:

group :test do
gem 'rspec', '~> 2.8.0'
gem 'rspec-expectations', '~> 2.8.0'
gem 'rspec-mocks', '~> 2.8.0'
gem 'autotest-standalone'
gem 'em-spec', '~> 0.2.6'
gem 'rack-test', '~> 0.6.1'
gem 'factory_girl', '~> 3.1.0'
end

此外,在 spec_helper.rb 文件的顶部,我有以下内容:

require 'bundler/setup'
Bundler.require(:test, :development)

最佳答案

对于 Active Record 模型,RSpec 有方法 mock_model,它自动创建几个 stub ,所有 Ruby on Rails 模型通用,并接受哈希。

因此,要在 Rails 之外使用 mock_model,您应该连接 Active Record 和 rspec-rails扩展名。

为了确保您可以查看 here mock_model 定义在哪里。

关于ruby - 如何在 Rails 之外将 mock_models 与 RSpec 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com