Rspec 测试效果不佳
Rspec test doesn't work well
我想做什么
我想检查包含一些更改控制器数据库的过程的操作是否成功。
错误
"no save"
F
失败:
1) BuysController 检查#new 的行为 return 完成
Failure/Error: 期望(buy.trading_status).to eq("done")
expected: "done"
got: "pending"
(compared using ==)
# ./spec/controllers/buys_controller_spec.rb:27:in `block (3 levels) in <top (required)>'
在 0.14739 秒内完成(文件加载用时 3.68 秒)
1 个例子,1 个失败
失败的例子:
rspec ./spec/controllers/buys_controller_spec.rb:6 # BuysController 检查#new 的行为 return 完成
代码
require 'rails_helper'
include BuysHelper
RSpec.describe BuysController, type: :controller do
describe "check #new's behavior" do
it "return done" do
User.create(name:"hhhvv",email:"gggjggg@gmail.com")
p User.find(1)
Currency.create(name:"hello",user_id:1)
Sell.create(
id:1,
user_id: 1,
currency_id:1,
amount:100,
price:100,
trading_status:"pending")
buy = Buy.new(
id:1,
user_id: 1,
currency_id:1,
amount:100,
price:100,
trading_status:"pending"
)
if buy.save
market_checker
else
p "no save"
end
expect(buy.trading_status).to eq("done")
end
end
end
我试过的
rake db:test:prepare
rake db:migrate RAILS_ENV=test
您可能还想检查错误。
expect(buy.errors).to be_empty
我想做什么
我想检查包含一些更改控制器数据库的过程的操作是否成功。
错误
"no save" F
失败:
1) BuysController 检查#new 的行为 return 完成 Failure/Error: 期望(buy.trading_status).to eq("done")
expected: "done"
got: "pending"
(compared using ==)
# ./spec/controllers/buys_controller_spec.rb:27:in `block (3 levels) in <top (required)>'
在 0.14739 秒内完成(文件加载用时 3.68 秒) 1 个例子,1 个失败
失败的例子:
rspec ./spec/controllers/buys_controller_spec.rb:6 # BuysController 检查#new 的行为 return 完成
代码
require 'rails_helper'
include BuysHelper
RSpec.describe BuysController, type: :controller do
describe "check #new's behavior" do
it "return done" do
User.create(name:"hhhvv",email:"gggjggg@gmail.com")
p User.find(1)
Currency.create(name:"hello",user_id:1)
Sell.create(
id:1,
user_id: 1,
currency_id:1,
amount:100,
price:100,
trading_status:"pending")
buy = Buy.new(
id:1,
user_id: 1,
currency_id:1,
amount:100,
price:100,
trading_status:"pending"
)
if buy.save
market_checker
else
p "no save"
end
expect(buy.trading_status).to eq("done")
end
end
end
我试过的
rake db:test:prepare
rake db:migrate RAILS_ENV=test
您可能还想检查错误。
expect(buy.errors).to be_empty