Ruby on rails 示例使用未定义的方法'model_name';对于RSpec::Mocks::Mock:Class和Failure/Error:Bookmark.should_receive(:new)
你好,我不知道为什么这些测试失败了。这是一本“专家”德语书中的例子 也许有人能帮我。。。。 谢谢Ruby on rails 示例使用未定义的方法'model_name';对于RSpec::Mocks::Mock:Class和Failure/Error:Bookmark.should_receive(:new),ruby-on-rails,mongodb,rspec,devise,Ruby On Rails,Mongodb,Rspec,Devise,你好,我不知道为什么这些测试失败了。这是一本“专家”德语书中的例子 也许有人能帮我。。。。 谢谢 关于收到:0次,有任何参数 您使用的方法通常用于“验收”测试,而不是控制器测试。我不知道这种方法在这种情况下起什么作用。我想你应该在post 关于RSpec::Mocks::Mock:Class的未定义方法“model_name” 你的存根Bookmark.stub(:new.)和返回(@Bookmark)其中@Bookmark=double(Bookmark)-这意味着@Bookmark不是Bo
收到:0次,有任何参数
您使用的方法通常用于“验收”测试,而不是控制器测试。我不知道这种方法在这种情况下起什么作用。我想你应该在post
Bookmark.stub(:new.)和返回(@Bookmark)
其中@Bookmark=double(Bookmark)
-这意味着@Bookmark
不是Bookmark
的实例,而是RSpec::Mocks::Mock:Class
的实例。
当操作create
开始工作时,它会尝试保存记录。方法save
返回false(您将其存根),并再次呈现视图new
。此页面包含基于@bookmark
的表单,该表单调用model\u name
。
可能的解决方案:使用@bookmark=bookmark.new
您好@gotva,我将
visit
更改为post
,在bookmarkscontroller中,我将新方法@bookmark=bookmark.new(params[:bookmark])更改为@bookmark=bookmark.new,但我得到了。也许我想念你。你是对的(我希望)。问题在于这个。为此,您应该在@bookmark=bookmark.new上更改@bookmark=double(bookmark)