Регулярные выражения mocha отсутствуют несколько раз - PullRequest
1 голос
/ 26 июля 2011

Мне трудно получить согласованное поведение от Мокко и метода regexp_matches . Если автотест запускает весь мой набор тестов, все работает нормально. Если я намеренно вызвал сбой теста, содержащего вызов regexp_matches, а затем исправил его, я получил ошибку method_missing на regexp_matches. Если я снова запусту весь набор тестов, все будет хорошо. Большая проблема исходит от Хадсон (непрерывная интеграция). Он запускает весь набор тестов, но всегда говорит, что regexp_matches отсутствует, и я не знаю, как это исправить.

Мой тест:

test "if token is set during Account creation the long url should be created correctly" do
  Account.any_instance.expects(:http_get).with("api.server.com", regexp_matches(%r(^http://.*/accounts/\d+/jobs$)))
  account = Account.create name: "New Account", token: "NewToken"
end

Ошибка:

test_if_token_is_set_during_Account_creation_the_long_url_should_be_created_correctly(AccountTest):
NoMethodError: undefined method `regexp_matches' for #<AccountTest:0x0000010162d0c0>
    test/unit/account_test.rb:158:in `block in <class:AccountTest>'

Я даже не знаю, какой еще код добавить сюда, так как не представляю, в чем причина. Для хихиканья я вставил require 'mocha' вверху тестового файла, но это ничего не изменило.

1 Ответ

1 голос
/ 17 мая 2013

Я столкнулся с этой проблемой в проекте rails при удалении

require 'spec_helper'

Я сделал это так, чтобы запуск спецификации не загружал всю среду рельсов. Это означает, что внешние зависимости должны быть обязательными или поддельными. Мокко, очевидно, необходимо требовать.

Но даже после указания

require 'mocha'

Я столкнулся с тем же методом, что и проблема.

В конечном счете, я решил это, включив модуль соответствия параметров напрямую:

require_relative "../../../lib/some_class"
require "mocha"

include Mocha::ParameterMatchers

describe SomeClass do
  it "should do things" do
  ...
...