在Ruby gem上工作,并尝试在RSpec中使用FactoryBot。
我在support/factory_bot.rb里有这个
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
config.before(:suite) do
FactoryBot.find_definitions
end
end
在spec_helper.rb中
require 'support/factory_bot'
当我尝试运行spec rake任务时,我得到这个错误:
support/
我正在尝试在一个非常基本的ruby项目(不是rails)上设置一个测试,但无法找到使其工作的方法。我遵循了指南,它只是安装gem,运行bundle安装并添加到我的spec/spec_helper.rb配置中:
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
config.before(:suite) do
FactoryBot.find_definitions
end
end
然后,我在spec文件夹中创建了一个工厂/order_factories.rb文件,如下所示:
Fact
我正在尝试为我的Sinatra应用程序设置使用工厂女孩和Rspec的单元测试。
创业板档案:
group :test do
gem "rack-test"
gem "fuubar"
gem "factory_girl"
gem "yard"
end
规范/工厂/vserver.rb
require 'factory_girl'
FactoryGirl.define do
factory :vserver do
first_name "John"
last_nam
我使用的是rails 5.1.4 devise 4.4.1 factory_bot_rails 4.8.2
rails g devise User
Running via Spring preloader in process 15889
invoke active_record
create db/migrate/20180213152941_devise_create_users.rb
create app/models/user.rb
invoke rspec
create spec/models/
对于我的第一个Rails引擎--命名为“术语表”--我希望实现Rspec、ShouldaMatchers、FactoryBot作为测试套件。情况看上去不错,但FactoryBot一直声称工厂没有注册:
Failures:
1) Glossary::User
Failure/Error: subject {FactoryBot.build(:user)}
ArgumentError:
Factory not registered: user
在开发过程中,rails generate model user first_name last_name
我刚刚安装了factory_bot_rails gem,这从一开始就给我带来了一个问题:
$ bundle exec rspec spec/models/scan_spec.rb
bundler: failed to load command: rspec (/Users/me/.rbenv/versions/2.4.3/bin/rspec)
Bundler::GemRequireError: There was an error while trying to load the gem 'factory_bot_rails'.
Gem Load Err
我从BDD (黄瓜+水豚+ selenium )开始,TDD (rspec)从factory_bot开始,我在黄瓜特性方面出现了一个错误-- step_definitions。
未初始化常量用户(NameError)
有了TDD,一切都好了,工厂的机器人运转良好。问题是黄瓜。
factories.rb
FactoryBot.define do
factory :user_role do
name {"Admin"}
query_name {"admin"}
end
factory :user do
我正在尝试“停靠”一个现有的Rails开发应用程序。这是我第一次尝试使用Docker。
我想将Guard设置为侦听文件更改并运行相关规范。
Guard服务似乎运行正常,日志显示:
guard_1 | 16:35:12 - INFO - Guard is now watching at '/app'
但是当我编辑/保存spec文件时,Guard没有运行任何测试。
这是一个现有的应用程序,我正在迁移到Docker中。它有一个在Docker之外工作的保护文件。
我已经搜索和阅读了许多帖子(例如),但我不确定从哪里开始调试它。有没有人能给我指出正确的方向,让Guard监听文件更
我是Rails和Rspecs的新手。所以如果这是青少年的话,请耐心地回答我的问题。
我有两个相关的工厂机器人,如下所示:
specs/factories/table_definition.rb
FactoryBot.define do
factory :table_definition do
association :project, factory: :project
name { 'table_definition' }
end
end
specs/factories/projects.rb
FactoryBot.define do
factor
我有一个交互程序需要进行异常测试,但我无法通过规范。
接触器体
module RecordSchedules
class UpdateRecords
include PureInteractor
attr_accessor :records
def call(records:)
records.each do |record|
raise StandardError, 'record cannot be processed' if record.fail
end
records.update_a
不好意思,标题模糊,这个问题有很多移动的部分,所以我认为只有在看到我的代码之后才会清楚。我确信我知道这里发生了什么,并在寻找关于如何以不同的方式来做这件事的反馈:
我有一个用户模型,它通过ActiveRecord回调设置一个uuid (这实际上是一个"SetsUuid“问题,但效果是这样的):
class User < ActiveRecord::Base
before_validation :set_uuid, on: :create
validates :uuid, presence: true, uniqueness: tru
我有一个Rails应用程序,我正在试着测试它。我使用devise登录。然而,当我想要测试时,我遇到了一个问题:
Users/ender/Projects/ratingw/spec/controllers/widgets_controller_spec.rb:4:in `block in <top (required)>': undefined local variable or method `login_user' for #<Class:0x007fe909bd5070> (NameError)
首先,我想说我读过。
我的spec_helper.rb
我的应用程序是带有Factory Bot和RSpec的Rails 6.1。
我有一个订单模型,有两个不同的归属关联:公司和联系人。Contact也属于Company,创建了一种循环关联。
在我的工厂订单中,我有:
FactoryBot.define do
factory :order do
factory :order_with_po do
po_number {1234}
end
company
contact
end
end
然而,我遇到了问题,因为创建的联系人使用工厂机器人,而工厂机器人又为该联系人创建了一个新公司。同时还会为该订单创
我对instabot有点问题。我想上传一张图片,但它给了我一个错误
我的代码:
bot = Bot()
bot.login(username=username, password=password)
bot.upload_photo(image,caption='title')
错误:
line 23, in <module> bot.login(username=username, password=password)
line 443, in login if self.api.login(**args) is False
line 240, in login
我在测试依赖于Singleton类的功能时遇到了问题。这个类(ERPDao)是一个具有不同方法的套件,可以帮助应用程序使用Faraday gem与外部ERP vía REST服务连接。URLMaker是构建请求字符串的帮助器类。当我尝试运行依赖于这些方法之一的功能规范时,我在rspec中得到以下信息:
Failure/Error: result = ERPDao.instance.get_credit_info(erp_id)
NoMethodError:
undefined method `instance' for ERPDao:Class
Did you mea
我正在按照设置请求规范。如果我使用bundle exec rspec运行测试,我会得到以下错误:
An error occurred while loading ./spec/factories/entities_spec.rb.
Failure/Error:
FactoryBot.define do
factory :entity do
name { FFaker::Lorem.word }
end
end
NameError:
uninitialized constant FactoryBot
本教程只要求在rails_helper.rb文件中添加
我试图为这个服务编写一个RSpec测试,下面的服务实际上只是调用某个端点,然后在postgres DB中创建数据。
class SomeService
API_URL = "someEndPoint"
def process
get_reviews
end
def get_reviews
conn = Faraday.new(url: "#{APIURL}/#{ENV["ID"]}/reviews?language=en&stars=5") do |faraday|
faraday.heade
在运行parallel_rspec规范时,随机处理控制器的任何解决方案都会失败。
在Gemfile中
group :development, :test do
gem 'parallel_tests'
end
我的特快专递像这样执行
name@root:/project# parallel_rspec spec/controllers/
4 processes for 21 specs, ~ 5 specs per process
Randomized with seed 3503
Randomized with seed 41377
0/62 |>
例如,我有两个模型,一个是user,一个是post。一篇帖子belongs_to一个用户,一个用户有很多帖子
#spec/factories/post.rb
FactoryBot.define do
factory :post do
user
body Faker::Movie.quote
posted_at "2018-04-03 13:33:05"
end
end
#spec/factories/user.rb
FactoryBot.define do
factory :user do
first_name 'Jak
这是我的FactoryBot文件post.rb
FactoryBot.define do
factory :post do
title 'Rspec Test'
text 'test for attributes'
user_id 1
topic_id 1
end
end
在posts_controller_spec.rb中,我有下面的测试用例来测试post创建操作
it 'creates a new customer' do
post :create, post: attributes_for(:p