RSpec:转换为 mocks/stubs 的新 "allow" 语法时出现问题
RSpec: Problems converting to the new "allow" syntax for mocks/stubs
我正在努力学习 rspec 并将我所学的知识应用到现有的 rails 应用程序中。
我正在尝试创建一个名为 "current_user"
的用户模拟
这行代码我已经基本掌握了
controller.stub(:current_user).and_return(build_stubbed(:user))
并将它放在我的测试之前(所有测试都需要定义 current_user)
这行得通。但是
我知道这种语法已被弃用,我应该使用
allow().to receive().and_return()
语法,但我似乎无法将其转换为新语法并使其正常工作。
我试过了
user = double("user")
allow(user).to receive(:current_user).and_return(build_stubbed(:user))
没有成功。事实上,我不知道我在用这个做什么,需要指出正确的方向。我已经广泛寻找答案,但我怀疑这太基本了。
希望得到一些指导。
目前,您正在为 controller
变量添加 current_user
方法。在您的新语法示例中,您已将存根放在 user
双对象上。
在不了解 build_stubbed
的情况下,我希望它看起来像:
allow(controller).to receive(:current_user).and_return build_stubbed(:user)
我正在努力学习 rspec 并将我所学的知识应用到现有的 rails 应用程序中。
我正在尝试创建一个名为 "current_user"
的用户模拟这行代码我已经基本掌握了
controller.stub(:current_user).and_return(build_stubbed(:user))
并将它放在我的测试之前(所有测试都需要定义 current_user)
这行得通。但是
我知道这种语法已被弃用,我应该使用
allow().to receive().and_return()
语法,但我似乎无法将其转换为新语法并使其正常工作。
我试过了
user = double("user")
allow(user).to receive(:current_user).and_return(build_stubbed(:user))
没有成功。事实上,我不知道我在用这个做什么,需要指出正确的方向。我已经广泛寻找答案,但我怀疑这太基本了。
希望得到一些指导。
目前,您正在为 controller
变量添加 current_user
方法。在您的新语法示例中,您已将存根放在 user
双对象上。
在不了解 build_stubbed
的情况下,我希望它看起来像:
allow(controller).to receive(:current_user).and_return build_stubbed(:user)