Markop Test是.NET的免费,开源,集中的测试工具。使用Markop测试,您可以轻松编写单元测试,集成测试,功能测试和负载测试。
为了使用Markop测试,您应该执行以下步骤:
1-在解决方案中创建一个类库项目,并根据要执行的测试的类型来命名,例如“ functionaltest”。不要忘记将项目添加到您的解决方案中。
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME]3-在测试项目中安装Markop测试包:
Nuget:
Install-Package MarkopTest或使用dotnet cli:
dotnet add package MarkopTest4-根据您要执行的测试类型,您应该去:单元测试,集成测试,功能测试或负载测试。
单位测试应该测试最小的代码的行为。 Markop测试在这里使此过程完全自动化。写单元测试从未如此简单!!
首先,您应该创建一个AppFactory类从UnitTestFactory类扩展。
然后,您需要覆盖Initializer和ConfigureTestServices方法
Initializer方法使您能够启动自定义数据库来测试您所要做的所有操作,就是构建自定义初始化器并在此处调用它。 Markop测试将照顾其余的!
ConfigureTestServices方法使您能够注册/删除服务。这样,在开始测试之前,您将对应用程序的注册服务完全控制!!

然后,您需要创建一个类并将其从您自己的AppFactory类扩展
接下来,您应该在课内定义一种方法,并将可效力的测试属性放置。它可以是[Fact]或[Theory]或Xunit中的任何其他有效的测试属性。
现在,您可以在方法中开始编写测试代码!!
例如,在以下代码中,我们编写了代码以测试一种称为EmailNormalize的扩展方法

软件测试的一部分测试单个代码组件以验证不同软件系统模块之间的相互作用。
我们使用这些测试用于测试应用程序的基础架构和整个框架,通常包括以下组件:
Markop提供了一个应用工厂抽象,以使实施清洁的集成测试和查看输出变得容易,而不是使用诸如Postman之类的外部API测试工具。

首先,您应该创建一个AppFactory类,从IntegrationTestFactory类扩展。
接下来,您需要覆盖初始化器,configuretestservices,geturl,有效征收方法。
然后,您需要创建一个类并将其从您自己的AppFactory类中扩展。对于更清洁的实现,我们建议您为API中的每个控制器创建一个类。
使用Endpoint rtribute为请求地址指定模式。
接下来,您应该在课内定义一种方法,并将可效力的测试属性放置。它可以是[Fact]或[Theory]或Xunit中的任何其他有效的测试属性。
现在,您可以在方法中开始编写测试代码!!
例如,在以下代码中,我们编写了代码以测试SignIn API

注意1 :在运行时变量,例如controller和Endpoint内部的action ,将以您的类名称和方法的名称归功于trribute。
注意力2 :Markop测试会在您的班级名称末端自动忽略[“测试”,“测试”,“控制器”]。
例如,在上面的代码中, controller值将为“帐户”,而action值将为“ signin”。请求将发送到/Account/SignIn端点。
该测试确定了可以通过汇总集成测试并将实际输出与预定输出进行比较来完成的产品的功能。
我们使用案例方案进行功能测试。例如,在新闻系统中,我们必须测试诸如创建,编辑和删除新闻实体之类的新闻方案,您可以在系统中实现事务工作流。
与集成测试一样,Markop提供了一个App Factory抽象,以使实施干净的功能测试易于实现。
Initializer(IServiceProvider hostServices) : Initializer方法使您能够启动自定义数据库进行测试。您要做的就是构建自定义初始化器,并在此处调用。 Markop测试将照顾其余的!
ConfigureTestServices(IServiceCollection services) ConfigureTestServices方法使您能够注册/删除服务。这样,在开始测试之前,您将对应用程序的注册服务完全控制!!

GetUrl(string url, string controllerName, string testMethodName) GetUrl帮助您构建HTTPClient将要发送请求的正确地址。
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse使您可以根据API的预期行为自定义响应验证验证。
如果您有兴趣为这个项目做出贡献,首先,我们要延长我的衷心感激之情。
如果您需要帮助,请随时与我们联系。
麻省理工学院