マルコップテストは、 .NET用の無料のオープンソースのフォーカステストツールです。マルコップテストを使用すると、単体テスト、統合テスト、機能テスト、負荷テストを簡単に記述できます。
マルコップテストを使用するには、次の手順を実行する必要があります。
1-ソリューション内にクラスライブラリプロジェクトを作成し、実行したいテストの種類に従って名前を付けます。たとえば、「functionaltest」。プロジェクトをソリューションに追加することを忘れないでください。
dotnet new classlib -n [YOUR PROJECT NAME] dotnet sln add [YOUR PROJECT NAME]3-テストプロジェクト内にマルコップテストパッケージをインストールします。
ヌゲット:
Install-Package MarkopTestまたはdotnetCLIを使用してください:
dotnet add package MarkopTest4-実行するテストの種類に応じて、ユニットテスト、統合テスト、機能テスト、または負荷テストにアクセスする必要があります。
ユニットテストは、コードの最小ピースの動作をテストすることになっています。マルコップテストは、このプロセスを完全に自動化するためにここにあります。ユニットテストを書くことは以前にはかつてないほど簡単になりました!!
まず、 AppFactoryクラスを作成して、 UnitTestFactoryクラスから拡張する必要があります。
次に、 InitializerとConfigureTestServicesメソッドをオーバーライドする必要があります
Initializerメソッドでは、カスタムイニシャルイザーを構築してここで呼び出すことだけで、カスタムデータベースをテストするためのカスタムデータベースを開始することができます。マルコップテストは残りの世話をします!!
ConfigureTestServicesメソッドにより、サービスを登録/削除する機能が得られます。このようにして、テストを開始する前に、アプリの登録サービスを完全に制御できます!!

次に、クラスを作成して、独自のAppFactoryクラスから拡張する必要があります
次に、クラス内のメソッドを定義し、Pereferable Test属性を配置する必要があります。 Xunitの[Fact]または[Theory] 、またはその他の有効なテスト属性である可能性があります。
これで、メソッド内にテストコードの書き込みを開始できます!!
たとえば、以下のコードでは、 EmailNormalizeと呼ばれる拡張メソッドをテストするコードを書きました

個々のコードコンポーネントをテストして、さまざまなソフトウェアシステムモジュール間の相互作用を検証するソフトウェアテストの一部。
これらのテストを使用して、アプリのインフラストラクチャとフレームワーク全体をテストするために使用されます。多くの場合、次のコンポーネントを含みます。
Markopは、Postmanなどの外部APIテストツールを使用する代わりに、クリーンな統合テストとビュー出力を簡単に実装できるようにするアプリファクトリの抽象化を提供します。

まず、 AppFactoryクラスを作成する必要があります。TestFactoryクラスから拡張IntegrationTestFactoryます。
次に、初期化、ConfigureTestServices、getUrl、validAtereponseメソッドをオーバーライドする必要があります。
次に、クラスを作成し、独自のAppFactoryクラスから拡張する必要があります。クリーナーの実装については、APIの各コントローラーのクラスを作成することをお勧めします。
Endpoint Atrributeを使用して、リクエストアドレスのパターンを指定します。
次に、クラス内のメソッドを定義し、Pereferable Test属性を配置する必要があります。 Xunitの[Fact]または[Theory] 、またはその他の有効なテスト属性である可能性があります。
これで、メソッド内にテストコードの書き込みを開始できます!!
たとえば、以下のコードでは、 SignIn APIをテストするコードを書きました

注意1 : controllerやEndpoint内のactionなどの実行時変数は、クラスの名前とメソッドの名前で無効化されます。
注意2 :マルコップテストは、クラス名の最後に["テスト"、「テスト」、「コントローラー」]を自動的に無視します。
たとえば、上記のコードでは、 controller値は「アカウント」になり、 action値は「Signin」になります。リクエストは/Account/SignInエンドポイントに送信されます。
このテストは、統合テストを集約し、実際の出力を所定の出力と比較することで実行できる製品の機能を決定します。
機能テストのためにケースシナリオを使用します。たとえば、ニュースシステムでは、ニュースエンティティの作成、編集、削除などのニュースシナリオの管理をテストする必要があります。システムにトランザクションワークフローを実装できます。
統合テストと同様に、Markopは、クリーンな機能テストを簡単に実装できるようにするアプリファクトリーの抽象化を提供します。
Initializer(IServiceProvider hostServices) : Initializerメソッドでは、テスト用のカスタムデータベースを開始することができます。あなたがしなければならないのは、カスタムイニシャルイザーを構築し、ここでそれを呼び出すことです。マルコップテストは残りの世話をします!!
ConfigureTestServices(IServiceCollection services) ConfigureTestServicesメソッドにより、サービスを登録/削除する機能が得られます。このようにして、テストを開始する前に、アプリの登録サービスを完全に制御できます!!

GetUrl(string url, string controllerName, string testMethodName) GetUrl 、HTTPClientがリクエストを送信する正しいアドレスを作成するのに役立ちます。
ValidateResponse(HttpResponseMessage httpResponseMessage,TFetchOptions fetchOptions) ValidateResponse 、APIの予想される動作に従って応答検証プロセスをカスタマイズできます。
このプロジェクトに貢献することに興味があるなら、まず第一に、心からの感謝を拡大したいと思います。
助けが必要な場合は、お気軽にお問い合わせください。
mit