在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:markvincze/Stubbery开源软件地址:https://github.com/markvincze/Stubbery开源编程语言:C# 97.6%开源软件介绍:StubberySimple library for creating and running Api stubs in .NET. IntroductionIn many situations it comes handy if we're able to start a simple service that responds on certain routes with preconfigured static responses. This is particularly important in integration testing, when we might want to replace some of our dependencies with a stub that can reliably provide the expected responses. Stubbery is a library with which we can simply configure and start a web server that responds on particular routes with the configured results.
It targets How to useThe central class of the library is The server listens on After usage the server should be stopped to free up the TCP port. This can be done by calling Basic usageusing (var stub = new ApiStub())
{
stub.Get(
"/testget",
(req, args) => "testresponse");
stub.Start();
var result = await httpClient.GetAsync(new UriBuilder(new Uri(stub.Address)) { Path = "/testget" }.Uri);
// resultString will contain "testresponse"
var resultString = await result.Content.ReadAsStringAsync();
} Accessing the request parametersParameters of the request can be accessed through the second argument of the lambda setting up the response. The following code sample shows how the route and the query string parameters can be accessed. using (var stub = new ApiStub())
{
stub.Get(
"/testget/{arg1}",
(req, args) => $"testresponse arg1: {args.Route.arg1} queryArg1: {args.Query.queryArg1}");
stub.Start();
var result = await httpClient.GetAsync(
new UriBuilder(new Uri(stub.Address)) { Path = "/testget/orange", Query = "?queryArg1=melon" }.Uri);
// resultString will contain "testresponse arg1: orange queryArg1: melon"
var resultString = await result.Content.ReadAsStringAsync();
} The following example shows how the HTTP body can be accessed. using (var stub = new ApiStub())
{
stub.Post(
"/testpost",
(req, args) => $"testresponse body: {args.Body.ReadAsString()}");
stub.Start();
var result = await httpClient.PostAsync(
new UriBuilder(new Uri(stub.Address)) { Path = "/testpost" }.Uri,
new StringContent("orange"));
// resultString will contain "testresponse body: orange"
var resultString = await result.Content.ReadAsStringAsync();
} Other verbsIf we want to use a different HTTP verb, the using (var stub = new ApiStub())
{
stub.Request(HttpMethod.Options)
.IfRoute("/testoptions")
.Response((req, args) => "testresponse");
stub.Start();
var result = await httpClient.SendAsync(
new HttpRequestMessage
{
RequestUri = new UriBuilder(new Uri(stub.Address)) { Path = "/testoptions" }.Uri,
Method = HttpMethod.Options
});
// resultString will contain "testresponse"
var resultString = await result.Content.ReadAsStringAsync();
} More details can be found in the Documentation. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论