ハンドラーは、理想的には最小限の依存関係を持つ単なるクラスであるため、単体テストはクラス内の分離されたロジックをテストするだけで済みます。
ステータス コードをテストする場合は、OpenRasta セルフ ホスティングを使用することをお勧めします (ほとんど経験がありません!)。
これは私が最近書いたテストです(多少変更されています):
[TestMethod]
public void POST_with_inaccurate_contentLength_returns_405()
{
var resource = GetResource();
IRequest request = new InMemoryRequest
{
HttpMethod = "POST",
Uri = new Uri("http://localhost/Resource"),
};
request.Headers.ContentLength = 16; //wrong!
request.Entity.Stream.Write(resource.Content, 0, resource.Content.Length);
var response = _host.ProcessRequest(request);
Assert.AreEqual(405, response.StatusCode);
}
ホストが TestInitialize メソッドで次のように設定されていることを追加する必要があります。
_host = new InMemoryHost(new Configuration());
_host.Resolver.AddDependencyInstance(typeof(IFileResourceRepository), _repository, DependencyLifetime.Singleton);
...そして、TestCleanup メソッドでクリーンアップされます。