首页 > 代码库 > ASP.NET Zero--单元测试

ASP.NET Zero--单元测试

单元测试

ASP.NET Zero启动项目包含单元集成测试。使用以下工具开发测试:

  • xUnit作为测试框架。
  • Shouldly 作为断言库。
  • Microsoft.EntityFrameworkCore.InMemory 的实体框架和数据库。
  • Abp.TestBase简化基于ABP的应用程序的集成测试。

测试涵盖 了项目的(核心)和应用层。打开测试资源管理器(在VS主菜单中测试\ Windows \ Test Explorer)运行单元测试:

一些单元测试(租户创作,版本创建等)仅适用于多租户概念。您可以将AbpZeroTemplateConsts.MultiTenancyEnabled更改为false,以使您的应用程序成为单一租户。因此,将会跳过与多租户相关的测试。

技术分享

这些单元测试将是了解代码的指导。此外,它们可以作为您的应用程序功能编写自己的单元测试的模型。

所有单元测试类(实际上是集成测试,因为它们集成到ABP,EntityFramework,AutoMapper和其他应用层使用的库)都是从AppTestBase派生出来的它初始化ABP系统,使用Effort模拟数据库,为每个测试创建初始测试数据和登录到应用程序。它还为所有测试提供了一些有用的常用方法。

这里,应用中的样品单元测试:

public class UserAppService_Delete_Tests : UserAppServiceTestBase{    [Fact]    public async Task Should_Delete_User()    {        //Arrange        CreateTestUsers();        var user = await GetUserByUserNameOrNullAsync("artdent");        user.ShouldNotBe(null);        //Act        await UserAppService.DeleteUser(new IdInput<long>(user.Id));        //Assert        user = await GetUserByUserNameOrNullAsync("artdent");        user.IsDeleted.ShouldBe(true);    }}

它创建一些用户进行测试,然后验证是否有一个名为“artdent”的用户。然后调用用户应用程序服务(正在测试)的DeleteUser方法最后,检查用户是否被删除。在这里,User是一个软删除实体,所以 如果它被删除,它的IsDeleted属性必须为true。

您可以阅读 本文更好地了解单元测试。

发布到IIS

如果要将解决方案发布到IIS,请检查Microsoft的 文档

ASP.NET Zero--单元测试