如何检查,在Get方法中特定数据是否匹配或在restsharp中

时间:2019-06-27 11:21:11

标签: c# asp.net-web-api restsharp

我是RestSharp的新手,因为我对API进行自动化。 如何知道特定的数据存在于Get方法中。在我的API中,存在3个对象。这些是分页,数据和信息。 现在,我想检查一下,“名字”值是否与“数据”对象匹配。

我使用了JsonDeserializer概念。但是我无法移动“数据”对象。

var client = new RestClient("https://ecovon.com/search?keyword=marketing&page=1");
var request = new RestRequest(Method.GET);

//Header values.
request.AddHeader("Content-Type", "application/json");

//Execute script
IRestResponse restResponse = client.Execute(request);
var deserialize = new JsonDeserializer();
var output = deserialize.Deserialize<Dictionary<string, string>>(restResponse);

var result = output["firstname"];
Assert.AreEqual(result, "Matt", "Name not matched.");

1 个答案:

答案 0 :(得分:0)

简单的答案就是你没有。

单元测试API时,您有许多选择。

  1. 您可以添加一些测试数据,然后使用这些数据,但是当多个人触发自动测试然后更改数据时,这将变得很棘手,所以我不是这种方法的忠实拥护者。

    < / li>
  2. 在测试任何东西之前,首先创建所需的数据并对其进行断言。完成后,您只需删除创建的数据,这样就不会污染正在测试的现有系统。

想象一下这种情况:

您有一个用户,名字是 Frank ,名字是 Johnson 。您还需要一个唯一的电子邮件地址才能创建它。

您想测试一种返回全名 Frank Johnson 的方法。

您可以使用guid作为用户名,格式为guid@something.com,您可以在其中自行指定GUID。它将是唯一的,因此该部分将被覆盖。您设置其余数据。这是使用API​​的端点完成的。

创建用户后,您便可以使用已知的信息来调用您实际要测试的端点,以识别正确的用户,也许是他们的电子邮件,id,无论您拥有什么。

您进行断言,确认一切正确,最后使用另一个端点删除刚才创建的所有数据。例如,这甚至可能是您没有在生产中公开的端点,或者您保护了它的端点,以便其他任何人都不能使用它。

因此,您的端点测试现在涉及调用3个端点:

  • 创建测试数据
  • 调用被测端点并进行断言
  • 删除测试数据

这还需要更多工作,但是值得,它可以确保一切正常运行。

对于其他任何要测试的内容,您都遵循此方法,因此,根据您的测试方案,创建您需要的内容,您将知道应该获取多少数据以及应该看起来像什么,并且已经完成