我正在尝试测试一个rake任务,它在其中使用了一个活动记录.
require 'spec_helper'
require 'rake'
load File.join(Rails.root, 'lib', 'tasks', 'survey.rake')
describe "survey rake tasks" do
describe "survey:send_report" do
it "should send a report" do
Rake::Task['survey:send_report'].invoke
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行此规范时rspec spec/lib/survey_spec.rb
,我收到此错误"
RuntimeError:
Don't know how to build task 'environment'
Run Code Online (Sandbox Code Playgroud)
如何通过示例规范加载:enviroment任务?
我需要使用LIKE函数搜索两个字段,并且也应该以相反的顺序匹配.我的表使用没有全文搜索的InnoDB.
考虑以下情况:
我有一个带有first_name和last_name列的用户表.在它上面,有一行具有以下值:
{
first_name: 'Ludwig',
last_name: 'van Beethoven',
}
Run Code Online (Sandbox Code Playgroud)
案例:
我试过这个SQL语句,但没有运气.
SELECT CONCAT(first_name, ' ', last_name) as fullname
FROM users
WHERE fullname LIKE '%Ludwig van Beethoven%';
Run Code Online (Sandbox Code Playgroud) 我正在尝试为User模型创建一个测试用例.基本上,它将验证first_name和last_name是否存在.
我要做的是检查特定字段上的错误是否为空,它应该为空.然而它总是失败.
这样做的正确方法是什么?
这是我的代码
在我的user_spec.rb上
require 'spec_helper'
describe User do
before do
@user = User.new
end
it "must have a first name" do
@user.errors[:first_name].should_not be_empty
end
it "must have a last name" do
@user.errors[:last_name].should_not be_empty
end
end
Run Code Online (Sandbox Code Playgroud)
在我的user.rb文件上
class User < ActiveRecord::Base
validates :first_name, :presence => true
validates :last_name, :presence => true
end
Run Code Online (Sandbox Code Playgroud)