我在控制器中有一个flash消息,我想用rspec来测试它。 在我的控制器中,如果数据库为空,则设置flash[:notice]
,否则为零。
创建一个rspec测试模型的临时入口
def show
if(User.first.nil?)
flash[:notice] = "database is empty!"
end
end
然后在RSpec的文件我想测试两种情况:
我:当flash[:notice]
设置为“数据库为空”
二:当flash[:notice]
未设置为干啥
def show
it "assigns a "database is empty!" to flash[:notice]"
expect(flash[:notice]).to eq("database is empty!")
end
it "does not assign anything to flash[:notice]"
FactoryGirl.buil(:user)
expect(flash[:notice]).to be_nil
end
end
第一次rspec测试通过但第二次失败。我不知道如何断言第二个测试用例的数据库不是空的。
谢谢
呢'之前do'创建之前每个“它”单独块工厂女孩的实例?如果这样做,那么第一个测试用例将失败,因为如果数据库表不是空的,那么将不会有闪存消息。 –
是的,你需要把它分成另一个'context'块 –
你能编辑你的答案并教我关于使用上下文吗?上下文实际上做了什么? –