【问题标题】:cucumber and activemerchant duplicate transaction problemcucumber和activemerchant重复交易问题
【发布时间】:2011-10-18 21:13:01
【问题描述】:

我正在使用 activemerchant 和 authorize.net 跟踪此代码进行黄瓜测试(我知道它很旧,但它对我有用)

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

不管怎样,他对重复交易问题的解决方法(当快速处理大量黄瓜场景时)是为对象分配一个随机价格,以便每次都不同。

这样做的问题是,它实际上使测试正确价格几乎是不可能的。我应该如何重写我的测试或设置 Authorize 或 Activemerchant 来绕过这个问题?我正在尝试编写一个测试,如果我更改某些商品,它将检查我的购物车的总价格,而这在价格是随机的情况下是不可能的。

我目前唯一的定价检查(有效)是我查看 ui 并检查 div .total-price 中的价格,并检查它是否等于所有项目加在一起的价格。它确实通过了,但如果我改变价格呢?我肯定不知道总价是多少(因为它们都是随机的),我将无法检查新的价格(因为它仍然是随机的)

谢谢!

【问题讨论】:

    标签: ruby-on-rails cucumber authorize.net activemerchant


    【解决方案1】:

    使用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 沙盒正常运行时间

    【讨论】:

    • 哇,真快!嗯,当我开始工作时,我会调查并接受(因为有很多地方我需要更改测试)。现在投赞成票:)
    猜你喜欢
    • 2012-10-05
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 2011-05-08
    • 2015-02-06
    相关资源
    最近更新 更多