我正在尝试使用hyperstack和hyperspec进行一些组件单元测试。
问题是我有阻止测试运行的策略?
例如,我有一个政策,只有用户可以查看自己的订单。
但是除非我真的通过登录用户使测试复杂化(然后它实际上不是单元测试),否则我将看不到如何覆盖该策略。
我曾尝试在before(:all)
中放一个不同的策略,但是rspec不喜欢这样。
答案 0 :(得分:1)
我不熟悉rspec,但是您应该能够模拟用户类以假装它已登录。(或模拟任何报告登录状态的对象)。
例如,如果您使用rr,则可以执行类似的操作
any_instance_of(User) do |klass|
stub(klass).logged_in? { true }
end
仔细阅读rspec文档,看来您可能会执行以下操作。
allow_any_instance_of(User).to receive(:logged_in?).and_return(true)