Спецификациям ActiveMerchant не удается подключиться к API, в то время как режим разработки работает нормально с теми же учетными данными - PullRequest
1 голос
/ 03 февраля 2012

Я пытаюсь настроить спецификации для моего Checkout::Sale класса, в котором используется ActiveMerchant, используя учетные данные для тестовой учетной записи Authorize.NET, которую я настроил на днях.

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

Вот моя спецификация имой класс , который я тестирую.

Моя проблема в том, что этот код отлично работает, если я нахожусь в консоли Rails (среда разработки), но не работает каждый раз, когда я запускаю свои спецификации (тестовая среда)).В частности, API Authorize.NET жалуется, что мои учетные данные недействительны ...

(TESTMODE) Идентификатор или пароль для входа продавца или учетная запись не активна.

... хотя я использую те же учетные данные при разработке, и они работают нормально.

У меня нет логики, связанной с ActiveMerchant, ни в config/environments/development.rb, ни в config/environments/test.rb.

Я не понимаю, как один и тот же код работает для меня в разработке, а не в тестовом режиме.Кто-нибудь знает, что с этим?

Я использую activemerchant 1.20.2, rspec 2.8.0 и rails 3.1.1.

ПРИМЕЧАНИЕ. Это не работает независимо от того, использую я видеомагнитофон или нет;удаление видеомагнитофона, кажется, не имеет никакого эффекта.

1 Ответ

1 голос
/ 03 февраля 2012

Aph, только что понял.

Просто пропуск test: true делает транзакцию только тестовой транзакцией, даже если шлюз все еще использует шлюз :production.

Как этотестовые прогоны без загруженного Rails, я не загружал файлы среды, где я указал для dev и test:

ActiveMerchant::Billing::Base.mode = :test

Так как загрузка консоли rails действительно загружает Rails, поэтому она работала вразвитие, но не в моих тестах.Бросив вышесказанное в блок before, я решил мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...