2017-10-24 26 views
-1

나는 모의 및 위조 된 객체에 대해 기본적인 지식을 갖고 있으며 유닛 테스트 케이스 메소드에 위조 데이터를 전달합니다. 그러나 Unit 테스트 방법에 대한 자체 가짜 데이터를 만드는 대신 리포지토리에서 실제 데이터를 사용할 수있는 가능성이 있습니다.가짜 데이터가 아닌 실제 데이터에 Mocking 리포지토리가있는 단위 테스트 사례

.Net MVC 5 응용 프로그램에 NUnit을 사용하고 있습니다. 샘플 코드 라인에 아래와 같이 :

mockType.Setup(x=>x.GetUserDetails().Returns(
    new UserDetail(){ id = 1 , name = "John"} 
); 

그래서 나는 (우리는 위의 예에서처럼) 대신에 가짜 데이터를 생성하는 방법 GetUserDetails에서 실제 데이터 수익을 반환해야합니다.

위의 예제에서와 같이 가짜 UserDetail을 만드는 대신 DB 테이블에서 사용자 정보를 가져와야합니다. 자세한 정보가 필요하면 조언을하고 알려주십시오.

미리 감사드립니다.

+1

데이터베이스에서 데이터를 반환하려면 GetUserDetails()를 모방 할 필요가 없습니다. 정상적으로 수행하는 것처럼 테스트 데이터베이스를 설정하면 어떻습니까? – dbraillon

+0

좋은 생각을했지만, 원래 데이터베이스에 변경 사항이있을 때마다 테스트 데이터베이스에서 동일한 변경 작업을 수행해야합니다. 그냥 알려 드리 자면, 제작을 제외한 모든 환경에 문제없이 실제 데이터베이스를 사용할 수 있습니다. –

+0

또한, 이미 작성된 저장소 메소드에서 가짜 데이터 오브젝트를 생성하는 데 필요한 데이터를 얻는 방법을 알고 싶습니다. 내가 말이 안되면 알려줘. –

답변

0

응용 프로그램 UI -> 데이터베이스 -> UI의 전체 "파이프 라인"을 테스트하는 경우 응용 프로그램의 다른 계층에 액세스하는 테스트는 "통합 테스트"또는 "수용 테스트"입니다.

특정 경우에는 프로덕션에서 사용 된 것과 동일한 스키마로 빈 데이터베이스가 있어야합니다. 테스트 케이스

  • 실행 테스트를위한

    • 데이터를 삽입
    • 어설는 클린 데이터베이스
    • 결과 실제 데이터베이스를 액세스

    , 테스트가 느린 것 모든 테스트 후 데이터, 깨끗한 데이터베이스를 삽입 -에 느린지 통합 또는 수용 테스트에 좋습니다.

    테스트 및 프로덕션 데이터베이스 스키마를 동기화 상태로 유지하려면 원하는 유지 관리 스크립트/물류가 있어야합니다.

  • +0

    좋은 설명이었습니다.동일한 조롱 설정으로 다시 들어가면 모의 저장소에 실제 데이터를 제공 할 수 있습니까? 원래 질문에서와 같이. –

    +0

    네, 가능합니다. 단지'GetUserDetails'의 실제 구현을 호출하십시오. 가능하면 상대방 연결 문자열 및 기타 종속성을 사용하여 실제 서비스를 구성해야합니다. – Fabio

    +0

    만약 당신이 어떤 경우, 당신이 어떤 예제를 보여줄 수 있다면 도움이 될 것입니다, 고마워! –