Markop Test是.NET的免費,開源,集中的測試工具。使用Markop測試,您可以輕鬆編寫單元測試,集成測試,功能測試和負載測試。
為了使用Markop測試,您應該執行以下步驟:
1-在解決方案中創建一個類庫項目,並根據要執行的測試的類型來命名,例如“ functionaltest”。不要忘記將項目添加到您的解決方案中。
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME]3-在測試項目中安裝Markop測試包:
Nuget:
Install-Package MarkopTest或使用dotnet cli:
dotnet add package MarkopTest4-根據您要執行的測試類型,您應該去:單元測試,集成測試,功能測試或負載測試。
單位測試應該測試最小的代碼的行為。 Markop測試在這裡使此過程完全自動化。寫單元測試從未如此簡單! !
首先,您應該創建一個AppFactory類從UnitTestFactory類擴展。
然後,您需要覆蓋Initializer和ConfigureTestServices方法
Initializer方法使您能夠啟動自定義數據庫來測試您所要做的所有操作,就是構建自定義初始化器並在此處調用它。 Markop測試將照顧其餘的!
ConfigureTestServices方法使您能夠註冊/刪除服務。這樣,在開始測試之前,您將對應用程序的註冊服務完全控制! !

然後,您需要創建一個類並將其從您自己的AppFactory類擴展
接下來,您應該在課內定義一種方法,並將可效力的測試屬性放置。它可以是[Fact]或[Theory]或Xunit中的任何其他有效的測試屬性。
現在,您可以在方法中開始編寫測試代碼! !
例如,在以下代碼中,我們編寫了代碼以測試一種稱為EmailNormalize的擴展方法

軟件測試的一部分測試單個代碼組件以驗證不同軟件系統模塊之間的相互作用。
我們使用這些測試用於測試應用程序的基礎架構和整個框架,通常包括以下組件:
Markop提供了一個應用工廠抽象,以使實施清潔的集成測試和查看輸出變得容易,而不是使用諸如Postman之類的外部API測試工具。

首先,您應該創建一個AppFactory類,從IntegrationTestFactory類擴展。
接下來,您需要覆蓋初始化器,configuretestservices,geturl,有效徵收方法。
然後,您需要創建一個類並將其從您自己的AppFactory類中擴展。對於更清潔的實現,我們建議您為API中的每個控制器創建一個類。
使用Endpoint rtribute為請求地址指定模式。
接下來,您應該在課內定義一種方法,並將可效力的測試屬性放置。它可以是[Fact]或[Theory]或Xunit中的任何其他有效的測試屬性。
現在,您可以在方法中開始編寫測試代碼! !
例如,在以下代碼中,我們編寫了代碼以測試SignIn API

注意1 :在運行時變量,例如controller和Endpoint內部的action ,將以您的類名稱和方法的名稱歸功於trribute。
注意力2 :Markop測試會在您的班級名稱末端自動忽略[“測試”,“測試”,“控制器”]。
例如,在上面的代碼中, controller值將為“帳戶”,而action值將為“ signin”。請求將發送到/Account/SignIn端點。
該測試確定了可以通過匯總集成測試並將實際輸出與預定輸出進行比較來完成的產品的功能。
我們使用案例方案進行功能測試。例如,在新聞系統中,我們必須測試諸如創建,編輯和刪除新聞實體之類的新聞方案,您可以在系統中實現事務工作流。
與集成測試一樣,Markop提供了一個App Factory抽象,以使實施乾淨的功能測試易於實現。
Initializer(IServiceProvider hostServices) : Initializer方法使您能夠啟動自定義數據庫進行測試。您要做的就是構建自定義初始化器,並在此處調用。 Markop測試將照顧其餘的!
ConfigureTestServices(IServiceCollection services) ConfigureTestServices方法使您能夠註冊/刪除服務。這樣,在開始測試之前,您將對應用程序的註冊服務完全控制! !

GetUrl(string url, string controllerName, string testMethodName) GetUrl幫助您構建HTTPClient將要發送請求的正確地址。
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse使您可以根據API的預期行為自定義響應驗證驗證。
如果您有興趣為這個項目做出貢獻,首先,我們要延長我的衷心感激之情。
如果您需要幫助,請隨時與我們聯繫。
麻省理工學院