私は人々がコントローラテストをどのように整理するかに関するきちんとした提案を探しています。例えばMVCコントローラテストをどのように構成しますか?
、
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Add()
{
var editAddress = new DTOEditAddress();
editAddress.Address = new Address();
editAddress.Countries = countryService.GetCountries();
return View("Add", editAddress);
}
[RequireRole(Role = Role.Write)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(FormCollection form)
{
// save code here
}
、私の「住所」のコントローラの機能を「追加」を取る私は、固定具が"when_adding_an_address"
と呼ばれるかもしれません、しかし、私はこのタイトルの下でテストする必要がある2つのアクションがあります...
フィクスチャのAct()
メソッドで両方のアクションを呼びたくないので、フィクスチャを半分に分割しますが、どのように名前を付けますか?
"When_adding_an_address_GET"
および"When_adding_an_address_POST"
?
物事はちょうど乱雑になっているようです。
また、コントローラのステートレス/セトゥプレスアサーションについてはどのように対処しますか?これらはどのようにアレンジしますか?例えば:
[Test]
public void the_requesting_user_must_have_write_permissions_to_POST()
{
Assert.IsTrue(this.SubjectUnderTest.ActionIsProtectedByRole(c => c.Add(null), Role.Write));
}
これは私が知っているカスタムコードですが、あなたのアイデアを得る必要があり、それは単にフィルタ属性がメソッドに存在していることを確認します。要は、Arrange()
またはAct()
を必要としません。
ヒントをどうぞ!
ありがとうございました