Я боролся с модулем тестирования def self.method
. Я нашел отличную нить here with a very helpful answer. Мой код:Тестирование модуля с RSpec 3
module MyModule
def self.method
groups = Posts.group :name
end
end
describe Class.new { include MyModule } do
its (:method) { should be_a(ActiveRecord::Relation) }
end
Проблема заключается в том, что речь идет о включая модуль и не распространяющие его. Как сказал автор ответа, он проверил его с RSpec 2. Я тестировал его с RSpec 3.0.0, и единственное, что сработало, было, когда метод был методом экземпляра. В противном случае я получаю следующее сообщение об ошибке:
undefined method `method' for #<#<Class:0x0000000..>:0x00000006..>
Как я могу проверить MyModule.method
?
С этой точной настройкой я получаю эту ошибку 'неопределенного метода«метода»для DummyClass: Class': -/ – valk
справа, так что ваш include не делает то, что вы думаете, что это делает ... что означает, что, возможно, 'include' не то, что вы хотите. –
Вы правы. Я поддерживаю это, спасибо. Я думаю, что мой вопрос запутан. Но как бы вы протестировали собственный метод модуля? – valk