Nancy プロジェクトのテストを作成しようとしています。テストをむき出しの基本に戻しましたが、一見奇妙な結果が得られます。
モジュール:
public class HomeModule : BaseModule
{
public HomeModule(IUserMapper mapper)
{
Get["/"] = "Hello, world!";
}
}
テスト:
[Test]
public void Home_Index_should_return_response_OK()
{
var result = GetBrowser().Get("/", with => with.HttpRequest());
Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
}
アサートは次のメッセージで失敗します。
期待値: OK
だった: OK
なんてこと?両方の結果のタイプHttpStatusCode
と値は「OK」です。.GetValue()
または両方に追加すると、アサートはパスしますが、さまざまなハックや「コードの匂い」.ToString()
が感じられます。
最初は、nUnit とテスト列挙型の癖かもしれないと思っていましたが、次のようなことを試してみると:
var value = ActionTargets.Suite;
Assert.AreEqual(ActionTargets.Suite,value);
それはうまくいきます。