1. 程式人生 > >ASP.NET Zero--單元測試

ASP.NET Zero--單元測試

正在 模型 ldl git target xuni false pre misc

單元測試

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--單元測試