我正在尝试测试两个模型之间的行为
在BudgetRule
模型中,我有after_create
方法,可以创建Transaction
(另一个模型)。
我想在创建的事务中测试action_start
列。在我的测试中,它应该相等Date.today
。所以我的BudgetRule
测试如下:
require 'rspec'
describe BudgetRule do
user = FactoryGirl.create(:user)
let(:budget_rule) { FactoryGirl.build(:budget_rule, user: user) }
subject { budget_rule }
it 'should add proper action start' do
budget_rule.save!
budget_transaction = Transaction.find_by(user: user, budget_rule: budget_rule)
budget_transaction.action_start.should == Date.today
end
end
但我收到了
NoMethodError: undefined method `should' for Wed, 26 Feb 2014:Date
感谢您的帮助!
更新:
当我做:
budget_transaction.action_start should == Date.today #without dot before "should"
我收到了
expected: Wed, 26 Feb 2014
got: #<BudgetRule id: 7, ...and so on... "> (using ==)
答案 0 :(得分:1)
因此,在几次失败之后,工作测试是:
require 'rspec'
describe BudgetRule do
user = FactoryGirl.create(:user)
budget_rule = FactoryGirl.create(:budget_rule, user: user)
budget_transaction = Transaction.find_by(user: user, budget_rule: budget_rule)
subject { budget_transaction }
it 'should add proper action start' do
expect(budget_transaction.action_start).to eq Date.today
end
end
希望有一天能帮助某人:)