[TestMethod]
public void UnitTestMethod1()
{
Test1Controller controller = new Test1Controller();
//This call throws NullReferenceException "Object reference not set to an instance of an object."
WebSecurity.Login("User1", "password1");
controller.TestMethod();
}
위의 코드에서 WebSecurity.Login 호출을 작동시키는 방법은 무엇입니까?
조사를했지만 별로 도움이되지 않았습니다
감사.
WebSecurity를 테스트하는 것이 아니라 자신의 코드 만 테스트하기를 원하므로 실제 WebSecurity 클래스를 제공하지 않고 컨트롤러 작업을 테스트 할 방법이 필요합니다 .
이를 수행하는 방법에는 여러 가지가 있지만 질문의 성격에 따라 가능한 가장 간단한 접근 방식 을 원한다고 생각 합니다 (가장 우아한 것보다는).이 경우 실제로 컨트롤러 동작을 테스트하지 않는 것이 좋습니다. 관련 MVC 배관을 사용하지만 논리를 꺼내서 테스트하십시오. 예 :
public Test1Controller
{
public ActionResult SomeMethod()
{
//do mvc stuff
//do WebSecurity stuff
//do your stuff
MyLogicHere();
}
//public only so it can be tested
public MyLogicHere()
{
//the logic in here does not have dependencies on difficult to test types
}
}
그런 다음 테스트 클래스에서 테스트 중입니다 Test1Controller.MyLogicHere
(WebSecuirity가 필요하지 않음).
또는 실제로 DI, 인터페이스, Mocks 등을 이해합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다