標籤:技術分享 sof mis 應用程式層 let pps pac string ext
單元測試
ASP.NET Zero啟動項目包含單元和整合測試。使用以下工具開發測試:
- xUnit作為測試架構。
- Shouldly 作為斷言庫。
- Microsoft.EntityFrameworkCore.InMemory 的Entity Framework和資料庫。
- 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--單元測試