ASP.NET Zero--單元測試
阿新 • • 發佈:2017-05-07
正在 模型 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--單元測試