проблема дублирования транзакций с огурцом и активным торговцем - PullRequest
1 голос
/ 03 августа 2011

Я следовал этому коду для тестирования огурцов с activemerchant и authorize.net (я знаю, что он старый, но тот, который работал для меня)

http://www.misuse.org/science/2007/12/13/using-activemerchant-to-process-credit-cards-in-rubyrails/

В любом случае, его исправлениепроблема с дублированием транзакций (при быстром прохождении множества сценариев огурца) заключалась в том, чтобы назначить объекту случайную цену, чтобы она каждый раз отличалась.

Проблема в том, что это делает тестирование по правильной цене практически невозможным.Как мне переписать свои тесты или настроить Authorize или Activemerchant, чтобы обойти эту проблему?Я пытаюсь написать тест, который проверит, будет ли общая стоимость моей корзины, если я изменю некоторые позиции, и это будет невозможно при случайных ценах.

Мой единственный текущий чек на оценку цены (который работает)это то, что я смотрю на интерфейс и проверяю цену в div .total-price и проверяю, совпадает ли она с ценой всех элементов, добавленных вместе.Это проходит, но что, если я изменил цену?Я, конечно, не знаю, сколько стоит общая цена (поскольку они все случайные), и я не смогу проверить новую цену (поскольку она все еще случайна)

Спасибо!

1 Ответ

1 голос
/ 03 августа 2011

Используйте webmock или подобную библиотеку для заглушки authorize.net.

Вот пример:

 Given /^authorize\.net will authorize payment$/ do
   stub_request(:post, "https://apitest.authorize.net/xml/v1/request.api").
   with(:body => /.*createCustomerProfileRequest.*/).
   to_return(:body => fixturefile("authorize_net_create_profile_ok_response.xml"))

   stub_request(:post, "https://apitest.authorize.net/xml/v1/request.api").
   with(:body => /.*createCustomerProfileTransactionRequest.*/).
   to_return(:body => fixturefile("authorize_net_authorize_ok_response.xml"))
 end
  • Бесплатный бонус - ваши тесты будут работать быстрее и не будут зависеть от времени работы песочницы authorize.net
...