gpt4 book ai didi

ruby - 摩卡模拟进行另一项测试

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:30 24 4
gpt4 key购买 nike

我一直在关注 15 TDD steps to create a Rails application指南 - 但遇到了一个我似乎无法解决的问题。对于 WordsController 的功能测试,我有以下代码:

class WordsControllerTest < ActionController::TestCase

test "should get learn" do
get 'learn'
assert_response :success
end

test "learn passes a random word" do
some_word = Word.new
Word.expects(:random).returns(some_word)
get 'learn'
assert_equal some_word, assigns('word')
end
end

在 Word 类中,我有以下代码:

class Word < ActiveRecord::Base
def self.random
all = Word.find :all
all[rand(all.size)]
end
end

当我运行测试时,我遇到以下错误(为简洁起见缩短):

1) Failure: unexpected invocation: Word(...).random() satisfied expectations:
- expected exactly once, already invoked once: Word(...).random()

我曾尝试更改测试顺序以及许多其他事情,但一次又一次我继续收到相同的测试失败 - Word.random() 已被调用。

我正在运行 Rails 3.0 beta 4 和 Mocha 0.9.8。我一直在努力寻找解决问题的方法,但似乎找不到。我是 Ruby/Rails 的新手,所以我不太熟悉这种语言和框架。

提前致谢!

最佳答案

mocha 需要最后加载。我也为这个问题苦苦挣扎。

#Gemfile
group :test
gem 'mocha', '~>0.9.8', :require => false
...
end

test_helper.rb
....
#at the very bottom
require 'mocha'

关于ruby - 摩卡模拟进行另一项测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3118866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com