사람들이 컨트롤러 테스트를 구성하는 방법에 대한 깔끔한 제안을 찾고 있습니다. 나는 고정있을 수 있습니다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"
라고 ...
필자의 Act()
메쏘드에서 두 가지 액션을 모두 호출하고 싶지 않으므로 조명기를 반으로 나눕니다. 어떻게 이름을 지어야합니까?
"When_adding_an_address_GET"
및 "When_adding_an_address_POST"
?
것만 큼 빠르게 지저분 해지는 것처럼 보입니다.
또한 스테이트리스/setupless 컨트롤러에 대한 어설 션을 어떻게 다룰 것이며, 어떻게 위와 같은 것들을 조정합니까? 예를 들면 :
[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()
이 필요하지 않다는 것입니다.
모든 도움말을 환영합니다!
감사합니다.