gpt4 book ai didi

rest-assured - Rest Assured 可以使用什么语言

转载 作者:行者123 更新时间:2023-12-04 20:33:55 26 4
gpt4 key购买 nike

我有一个关于 Rest Assured 的问题,它是否只适用于 Java 测试?或者我可以将它与 C# 一起使用?

谢谢

最佳答案

编辑:顺便说一句,似乎也有一个 .net 实现:

https://github.com/lamchakchan/RestAssured.Net



主页是这样写的:

Testing and validation of REST services in Java is harder than in dynamic languages such as Ruby and Groovy. REST Assured brings the simplicity of using these languages into the Java domain.



http://rest-assured.io/

但我个人认为,使用 rest-assured 之类的工具,无论实现语言如何,您都可以测试您的服务。您想将您的系统视为黑匣子。

在相关说明中,如果我们严格遵守行话,您关于您想针对 REST 端点编写单元测试的评论有点不正确。

有些人认为,在这种情况下,测试应该以某种方式编写,即它们与用于实现所述服务的技术无关。有关一般说明,请参阅

https://en.wikipedia.org/wiki/Black-box_testing



这种方法的好处是,这些更高级别的测试甚至可以用于测试所述服务的多个实现。想象一下你在一个微服务环境中工作,你意识到需要用 java 重写你的 ruby​​ 应用程序,但是你不能改变你的 API(你不能因为你的内部实现改变而强制用户改变,即使它在你的公司内部,人们不会在食堂和你说话)。

话虽如此,但对于不创建多语言开发环境也有一些话要说。谁来编写这些测试?如果它是同一个组并且测试驻留在同一个地方(存储库),那么您最好使用同一个编程平台。

注意:我不是说你应该把这个黑盒子从你的源代码中移开,但有时它可能是设置。

相反,较低级别的测试,例如单元测试 必须与代码一起存储,因为它们专门测试实现,而不仅仅是功能。

那么现在怎么办?您使用的是 .NET,因此可能最好使用来自“社区”的工具,否则您可能会使团队的开发人员环境设置过于复杂。

RestSharp在 SO 中多次提到。
var client = new RestClient("http://example.com");
// client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest("resource/{id}", Method.POST);
request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method
request.AddUrlSegment("id", "123"); // replaces matching token in request.Resource

// easily add HTTP Headers
request.AddHeader("header", "value");

// add files to upload (works with compatible verbs)
request.AddFile(path);

// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string

// or automatically deserialize result
// return content type is sniffed but can be explicitly set via RestClient.AddHandler();
RestResponse<Person response2 = client.Execute<Person>(request);
var name = response2.Data.Name;

许可证是 Apache 2,也许你应该看看并结合你自己的通用测试框架。

关于rest-assured - Rest Assured 可以使用什么语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com