2010-12-01 8 views
0

У меня есть модуль База данных с методом generate_from_database, которая вращается для циклов и методов метода get_length. Как я могу проверить, было ли get_length вызвано n раз, используя rspec или mocha?Метод тестирования, вызванный другим методом

module Database 
class Length < ActiveRecord::Base 
    def get_length(i,j) 
    ... 
    end 
end 
def Database.generate_from_database 
    ... 
for i in 0...size 
    for j in 0...size 
    Length.new.get_length(i+1,j+1)) 
end 
end 

ответ

0

Это:

mock_length = mock("length") 
Length.should_receive(:new).exactly(n).times.and_return(mock_length) 
mock_length.should_receive(:get_length).exactly(n).times 

должен работать.

0

Вы могли так что-то вроде:

Length.should_receive(:get_length).exactly(n).times

Подробнее: http://rspec.info/documentation/mocks/message_expectations.html

+0

Я сделал так: Length.should_receive (: get_length) .exactly (10) & bull; Database.generate_from_database и я получил отказы: Ожидалось 10, получил 0, но я знаю, что generate_from_database называет 10 раз get_length. Итак, почему rspec не видит звонки? – Mario 2010-12-01 14:10:32