NancyFXパート5で最初のアプリケーションを作成します。 アプリケーションテスト

以前の記事で、NancyFXでニーズに合わせてアプリケーションを簡単に作成および構成する方法を紹介しました。 しかし、現時点では、テストから切り離してソフトウェアの産業開発のプロセスを想像することはまったく不可能です。 最初のアプリケーションにプロジェクトを追加して、テストします。



NancyFXは、NancyアプリケーションをテストするためのNancy.Testingライブラリを提供します。これは、NuGetを使用してアプリケーションに追加できます。 最初のアプリケーションでソリューションにテストプロジェクトを追加しましょう(この例では、便宜上MSTestフレームワークを使用します。このフレームワークは、人件費をかけずにnUnitまたは他のテストフレームワークに簡単に置き換えることができます。 )







次に、テストプロジェクトへのリンクをテストプロジェクトに追加します。







次に、NuGetパッケージマネージャーを実行し、Nancy.Testingライブラリをプロジェクトに追加します。







IRootPathProviderインターフェイスを実装するクラスをテストプロジェクトに追加する必要があります。これは、MSTestフレームワークと組み合わせてNancyFXテストを実行するときに発生するエラーが原因であることを予約します。 nUnitフレームワークを使用する場合、このクラスを追加する必要はありません。 そのため、唯一のメソッドがテストプロジェクトへの絶対パスを返すTestRootPathProviderを追加します。 プロバイダーコードは次のようになります。



using Nancy; namespace NancyTestProject { public class TestRootPathProvider : IRootPathProvider { public string GetRootPath() { return @"C:\......\GitHub\NancyFxApplication\NancyFxApplication"; } } }
      
      







次に、プロジェクトに新しいテストを追加します。 ブートストラップパラメーターでは、テストするモジュールを指定する必要があります。また、以前に決定したテスト済みプロジェクトへのパスのプロバイダーも指定する必要があります。 次に、テストコードで、アプリケーションを呼び出すことができるBrowserクラスのインスタンスを作成します。 これに検証ユニットが続き、アサーションを使用してモジュールの正しい動作を検証します。



 using Microsoft.VisualStudio.TestTools.UnitTesting; using Nancy; using Nancy.Testing; using NancyFxApplication; namespace NancyTestProject { [TestClass] public class NancyTest { [TestMethod] public void simplest_get_test() { var bootstrapper = new ConfigurableBootstrapper(with => { with.Module<NancyFxModule>(); with.RootPathProvider<TestRootPathProvider>(); }); // Given var browser = new Browser(bootstrapper); // When var result = browser.Get("/", with => { with.HttpRequest(); }); // Then Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); } } }
      
      







テストエクスプローラーでテストを実行し、次の結果を取得します。







ご覧のとおり、テスト環境のセットアップには数分しかかかりませんでした。 これで、アプリケーションのテスト中に新しいテストを簡単に追加できます。 結論として、シリーズの最後の記事について簡単に発表したいと思います。 彼女はNancy.SelfHostingに専念します。

ご意見、ご意見をお待ちしております。



All Articles