【发布时间】:2013-12-04 16:38:13
【问题描述】:
我正在测试类似的东西:
describe "#check_name" do
it 'should raise ArgumentError with equal name' do
@article = Factory.build(:article)
@article.id = 3
lambda { @article.check_name(@article.id) }.
should raise_error(ArgumentError)
end
end
还有模特:
def check_name(article_id)
tocheck = Article.find_by_id(article_id)
if self.name == tocheck.name
raise ArgumentError, "It has the same name!!!"
end
end
调试模型,self有Factorybuild的值,就ok了。但是tocheck 是nil。 Article.find_by_id(article_id) 为零。
如果我正在调用@article.check_name(),并且模型中存在Article,那怎么可能无法查询?
抱歉,我可能不了解 vars 的范围或测试此类代码的正确方法。
[更新] 这是关于 ActiveRecord 的查找操作的范围。 测试这次加薪的正确方法是什么?
提前致谢!!!
【问题讨论】:
标签: ruby-on-rails ruby rspec tdd