0

我正在尝试使用 hyperstack 和 hyperspec 进行一些组件单元测试。

问题是我有阻止测试运行的策略?

例如,我有一个政策,只有用户可以查看他们自己的订单。

但是除非我真的通过登录用户使测试复杂化(那么它不是真正的单元测试),否则我看不到如何覆盖策略。

我尝试制定不同的政策,before(:all)但 rspec 不喜欢那样。

4

1 回答 1

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)
于 2019-04-12T13:25:28.857 回答