我正在尝试学习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))
没有成功。我现实我不知道我在做什么,需要指出正确的方向。我已经广泛寻找答案,但我怀疑这是太基础了。
会感激一些指导。
答案 0 :(得分:2)
目前,您正在为current_user
变量存储controller
方法。在新的语法示例中,您已将存根放在user
双重对象上。
在不了解build_stubbed
的情况下,我希望它看起来像:
allow(controller).to receive(:current_user).and_return build_stubbed(:user)