내가 같은 MVC 액션이 말 :단위 테스트 및 SRP (시험 방법의 범위/조직)
public ActionResult CustomerRecord(customerId)
{
if (_currentUser.CanViewCustomer(customerId))
return View();
else
{
// user has tried to access an unauthorised record,
// should not be here!
_logger.Log(new SecurityException());
return View("UnauthorizedAccess");
}
}
가 권한이없는 액세스 시도의 경우를 테스트하려면를, 얼마나 많은 검사 방법이 있어야한다?
CustomerRecord_WithUnauthorizedUser_LogsExceptionAndReturnsUnauthorizedView
또는 내가이 개 시험을 쓰기 수행합니다 :
즉, 내가 하나의 테스트를 작성해야합니까이 문제가 기술적으로 컨트롤러가 SRP를 위반 한 것으로 추측
CustomerRecord_WithUnauthorizedUser_LogsException
CustomerRecord_WithUnauthorizedUser_ReturnsUnauthorizedView
,하지만 난 몰라 그것을 자체적으로 문제가되는 것으로 봅니다 (동의하지 않을 경우 수정하십시오). 그 방법을 테스트하는 방법을 잘 모르겠습니다. 방법의 책임 당 하나의 테스트 또는 방법을 통한 단일 경로 당 하나의 테스트?
"귀하의 컨트롤러는 반드시 두 가지 일을함으로써 SRP를 위반하는 것은 아닙니다. 여전히 하나의 책임 (통제) 만 있습니다." 저는 이것이 매우 모호한 책임 정의라고 생각합니다. 통제의 책임을 어떻게 정의 하시겠습니까? 5 명의 프로그래머에게이 질문을한다면 5 가지 답변을 얻을 수 있을지 걱정됩니다. Manager라는 클래스와 동일합니다. –