ABP教程 第四章 整合測試

2022-03-01 18:41:44 字數 2428 閱讀 5330

//[doc-params]

}

在本系列教程中, 你將構建乙個名為acme.bookstore的用於管理書籍及其作者列表的基於abp的應用程式. 它是使用以下技術開發的:

本教程分為以下部分:

這一部分涵蓋了伺服器端測試. 解決方案中有多個測試專案:

每個專案用於測試相關的應用程式專案.測試專案使用以下庫進行測試:

}

測試專案配置為使用sqlite記憶體作為資料庫. 建立乙個單獨的資料庫例項並使用資料種子系統進行初始化種子資料,為每個測試準備乙個新的資料庫.

}

mongo2go庫用於模擬mongodb資料庫. 建立乙個單獨的資料庫例項並使用資料種子系統進行初始化種子資料,為每個測試準備乙個新的資料庫.

}

如果你已經按照第一部分中的描述建立了資料種子貢獻者,則相同的資料也在測試中可用. 因此你可以跳過此部分. 如果你尚未建立種子貢獻者,可以使用bookstoretestdataseedcontributor來為要在以下測試中使用的相同資料提供種子.

using system.threading.tasks;

using shouldly;

using xunit;

namespace acme.bookstore.books

} [collection(bookstoretestconsts.collectiondefinitionname)]}

[fact]

public async task should_get_list_of_books()}}

我們可以安全地檢查 "1984" 這本書的名稱,因為我們知道這本書可以在資料庫中找到,我們已將其新增到種子資料中.

新增測試方法,用以測試建立乙個合法book實體的場景:

[fact]

public async task should_create_a_valid_book()

);//assert

result.id.shouldnotbe(guid.empty);

result.name.shouldbe("new test book 42");

}

新增測試方法,用以測試建立乙個非法book實體失敗的場景:

[fact]

public async task should_not_create_a_book_without_name()

);});

exception.validationerrors

.shouldcontain(err => err.membernames.any(mem => mem == "name"));

}

最終的測試類如下所示:

using system;

using system.linq;

using system.threading.tasks;

using shouldly;

using volo.abp.validation;

using xunit;

namespace acme.bookstore.books

} [collection(bookstoretestconsts.collectiondefinitionname)]}

[fact]

public async task should_get_list_of_books()

[fact]

public async task should_create_a_valid_book()

);//assert

result.id.shouldnotbe(guid.empty);

result.name.shouldbe("new test book 42");

}[fact]

public async task should_not_create_a_book_without_name()

);});

exception.validationerrors

.shouldcontain(err => err.membernames.any(mem => mem == "name"));}}

}

開啟測試資源管理器(測試 -> windows -> 測試資源管理器)並執行所有測試:

恭喜你,綠色圖示表示測試已成功通過!

檢視本教程的下一章.

第四章測試

1.以下關於csma cd傳送流程的描述中,錯誤的是 答案 先發後聽 2.以下關於交換機 逆向位址學習 方法的描述中,錯誤的是 答案 每次加入或更新 表時,加入或更改的表項被賦予乙個ip位址 3.以下關於生成樹協議作用的描述中,錯誤的是 答案 生成樹協議是一種路由選擇協議 4.在二進位制指數後退演算...

網頁製作 第四章測試

第1部分 總題數 7 單選題 2分 為div設定類a與b,應編寫html a.div.a,b b.div a,b c.div a,div b d.div.a,div.b 本題總得分2分 單選題 2分 在css中不屬於新增在當前頁面的形式是 a.層疊式樣式表 b.鏈結式樣式表 c.嵌入式樣式表 d.內...

PMP 第四章 專案整合管理

1 什麼是整合管理,整合什麼?如何整合?2 整合管理的線索是什麼?線索是如何將整合管理串聯起來的?3 專案工作說明書是由誰來提供?包括什麼內容?為什麼要進行商業論證?4 專案章程的內容是什麼?主要作用是什麼?專案章程由誰制定,由誰批准?5 新專案經理接手時一般都應該做哪些工作?啟動會和開踢會的內容分...