Передача значения из файла функции в тело JSON в specflow c# - PullRequest
0 голосов
/ 14 июля 2020
Scenario: Create System X Report
Given I have accessed System x's endpoint
When I make a Post request for the report 7890 with the title Report number 7890
Then I get a response
Then I verify the response

Это мой сценарий в моем файле функций, я хочу передать «7890» и «Номер отчета 7890» в это JSON тело, которое находится в почтовом запросе в рамках определения шага.

[When(@"I make a Post request for the report (.*) with the title Report number (.*)"), Scope(Tag = "post")]
    public void WhenIMakeAPostRequest(int report, String reporttitle)
    {
        RestRequest request = new RestRequest("upload_with_associations", Method.POST);
        request.AddHeader("Content-Type", "application/json");
        request.AddParameter("application/json", "report_urn\": \"{report}        " +
            "\"_links\": {\n            \"curies\": title\": \"**{reporttitle}**                 \"href\": \"https://report-service-apps.domain/docs/{rel}\",\n       " +
            "             ,\n        " +
            "    \"get-report-documents\": [\n                {\n                    \"href\": \"/api/report/<report_urn>/documents\"\n             " +
                   ]\n        },\n        \"report_urn\": \"**{report}**\",\n        \"report_source\": {\n          " +
             "          get-report-documents , ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);
        statuscode = response.StatusCode;

    }

Итак, я передаю значения из файла функций в определение шага, а затем пытаюсь заменить значение в теле json как {report}, но я знаю, что это неправильно, так как же Я передаю значения в тело json?

[When(@"I make a Post request for the report (.*) with the title Report number (.*)"), Scope(Tag = "post")]
public void WhenIMakeAPostRequest(int report, String reporttitle)


request.AddParameter("application/json", "report_urn\": \"{report}

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Идея выглядит так

  1. Возьмите параметр из функции
  2. Создайте шаблон json с идентификатором для динамического c использования
  3. Создайте сценарий для чтения элементов в виде карты и замены идентификатора значением из файла функций. Pli вскоре отправит код
0 голосов
/ 14 июля 2020

Попробуйте использовать какой-нибудь сериализатор json, например Newtonsoft. Json.

  1. Создайте модель (или несколько моделей) для тела запроса
  2. Создайте экземпляр этой модели и примените входящие параметры к этой модели.
  3. Отметьте свойства этой модели атрибутом `[JsonProperty] и используйте имя из вашего json
  4. Serialize это и использовать строку вместо существующей json строки
...