我有一个关于Rest Assured的问题,它是否仅适用于Java测试?或者我可以将它与C#一起使用?
由于
答案 0 :(得分:0)
编辑:顺便说一句,还有一个.net实现:
这就是主页所说的:
在Java中测试和验证REST服务比在Ruby和Groovy等动态语言中更难。 REST Assured将使用这些语言的简单性带入了Java域。
但我个人认为,使用诸如放心的工具,您可以测试您的服务,无论实现语言。您想将您的系统视为黑盒子。
在相关的说明中,如果我们严格遵守行话,那么您想要针对REST端点编写 unit 测试的评论有点不正确。
有些人认为,在这种情况下,测试应该以某种方式编写,即它们与用于实现所述服务的技术无关。有关一般说明,请参阅
这种方法的好处是这些更高级别的测试可用于测试甚至所述服务的多个实现。想象一下,你正在微服务环境中工作,你意识到需要用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,也许你应该看看并结合你自己的通用测试框架。