Тест почтальона - схема объекта - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть тело ответа:

{
    "Id": 15,
    "Name": "Carrier1",
    "Fein": "Fein1",
    "McNumber": "McNumber1",
    "DotNumber": "DotNumber1",
    "Address": {
        "Street": "Street1",
        "City": "City1",
        "ZipPostalCode": null,
        "StateName": "AA (Armed Forces Americas)",
        "StateAbbr": "AA",
        "ContactName": null,
        "ContactPhone": null,
        "ContactFaxNumber": null,
        "ContactEmail": null
    }
}

Я использую Почтальон и хочу описать схему для проверки в тестах:

const schema = {
  "required": ["Id"],
  "properties": {
    "Id": {
      "type": "integer",
    },
    "Name": {
      "type": "string",
    },
    "Fein": {
      "type": "string",
    },
    "McNumber": {
      "type": "string",
    },
    "DotNumber": {
      "type": "string",
    },
    "Address": {
        "type" : {
            "properties": {
                "Street": {
                "type": "string",
                },            
            },
        }
    }
  }
};

var carrier = JSON.parse(responseBody);
tests["Carrier is valid"] = tv4.validate(carrier, schema);

но это не работает. Проверка того, что это просто должен быть объект:

"Address": {
    "type" : "object"
    }

отлично работает. Как описать это детали?

1 Ответ

0 голосов
/ 14 сентября 2018

Будет ли это работать:

const schema = {
  "required": ["Id"],
  "properties": {
      "Id": {
          "type": "integer"
      },
      "Name": {
          "type": "string"
      },
      "Fein": {
          "type": "string"
      },
      "McNumber": {
          "type": "string"
      },
      "DotNumber": {
          "type": "string"
      },
      "Address": {
          "type" : "object",
          "properties": {
              "Street": {
                  "type": "string"
              }
          }
        }
    }
}

Добавлен этот тест для проверки:

pm.test('Schema Valid', () => {
    var carrier = pm.response.json()
    pm.expect(tv4.validate(carrier, schema)).to.be.true
})

Test Passing

Я используюродное приложение Postman, поэтому, если вы все еще используете расширение Chrome, произойдет сбой, поскольку он не знает о pm.* функциях API

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