首页 > 解决方案 > 只有当我的条件在空手道中得到满足时,我才能匹配响应

问题描述

如果金额大于或等于 0,我需要检查金额,然后我需要将 CreditDebitIndicator 匹配为 CREDIT 。如果金额小于零,那么我需要将 CreditDebitIndicator 匹配为借方。我已经尝试了所有方法,但我没有从文档中获得所需的信息。可以请一些帮助我解决这种情况。

我试过这种方式

def store = response.Data.Transactions[0].CreditDebitIndicator
    And assert  response.Data.Transactions[0].Amount.Amount <= [0]
    And assert (response.Data.Transactions[0].Amount.Amount <= [0] ? { store : 'CREDIT'})

我的 json 是:

{"Data": {
        "Transactions": [
            {`enter code here`
                "AccountId": "13315",
                "TransactionId": "12345678",
                "TransactionReference": "FT14112N7BH5",
                "Amount": {
                    "Amount": "-55020.00",
                    "Currency": "USD"
                },
                "CreditDebitIndicator": "CREDIT",
                "Status": "Enabled",
                "BookingDateTime": "2014-04-22T00:00:00+0000",
                "ValueDateTime": "2014-04-22T00:00:00+0000",
                "TransactionInformation": "AccountTransfer",
                "BankTransactionCode": {
                    "Code": "NULM",
                    "SubCode": "NULMI"
                },

标签: apiresponsematchingusingkarate

解决方案


示例代码:

Feature: Validation

    Scenario:
        * def resp =
        """
            {
                "Data": {
                    "Transactions": [
                        {
                            "AccountId": "13315",
                            "TransactionId": "12345678",
                            "TransactionReference": "FT14112N7BH5",
                            "Amount": {
                                "Amount": "55020.00",
                                "Currency": "USD"
                            },
                            "CreditDebitIndicator": "CREDIT",
                            "Status": "Enabled",
                            "BookingDateTime": "2014-04-22T00:00:00+0000",
                            "ValueDateTime": "2014-04-22T00:00:00+0000",
                            "TransactionInformation": "AccountTransfer",
                            "BankTransactionCode": {
                                "Code": "NULM",
                                "SubCode": "NULMI"
                            }
                        },
                        {
                            "AccountId": "13315",
                            "TransactionId": "12345678",
                            "TransactionReference": "FT14112N7BH5",
                            "Amount": {
                                "Amount": "-55020.00",
                                "Currency": "USD"
                            },
                            "CreditDebitIndicator": "DEBIT",
                            "Status": "Enabled",
                            "BookingDateTime": "2014-04-22T00:00:00+0000",
                            "ValueDateTime": "2014-04-22T00:00:00+0000",
                            "TransactionInformation": "AccountTransfer",
                            "BankTransactionCode": {
                                "Code": "NULM",
                                "SubCode": "NULMI"
                            }
                        }
                    ]
                }
            }
        """
        * def fun = function(x){return (parseFloat(x)>=0 ? "CREDIT" : "DEBIT"); }
        * def cdind = get resp.Data.Transactions[*].CreditDebitIndicator
        * def amount = get resp.Data.Transactions[*]..Amount.Amount
        * def amountind = karate.map(amount, fun)
        * match cdind == amountind

推荐阅读