우리는 미친 데이터 기반 응용 프로그램을 가지고 있습니다. 우리는 응용 프로그램을 단위 테스트하고 싶지만 개발자는 데이터의 양 때문에 가짜 저장소를 완전히 만들지 않습니다. 나는 그들을 정말로 비난하지 않는다.단위 테스트 데이터로 ASP.NET MVC
기존 응용 프로그램에 테스트를 추가하고 있음을 이해하십시오. 우리가 다시 시작한다면 가짜 리포지토리를 사용하여 더 나은 단위 테스트를 수행하기 위해 많은 아키텍처를 변경해야합니다.
우리는 알려진 mdf 파일을 테스트와 함께 배포하고 복사 한 다음 테스트를 수행하는 데 사용하고 싶습니다. 이에 대한 승인 된 기술이 있습니까? 필자는 테스트 용 dll에 리소스를 포함시키는 것에 익숙하지만 mdf를 포함하지는 않습니다.
(종류의) 해결책 : 내가 Linq에 데이터 컨텍스트를 조롱에 앤드류 Tokeley의 게시물에서 DataContextWrapper을 복용 결국
(http://andrewtokeley.net/archive/2008/07/06/ mocking-linq-to-sql-datacontext.aspx) 그리고 기본적으로 List of FakeDataContext.cs를 만들었습니다.
: 나는 ("> < # = table.BaseClass.QualifiedName # * FROM을 선택"생각) 같은 것들로 가득 찬 거대한 클래스를 만들 알려진 좋은 데이터베이스에서 데이터를 복사 할 진정한 야만적 인 T4 템플릿을 작성List<Customer> _customers = new List<Customer>();
_customers.Add(new Customer(){CustomerId = 1, CustomerName = "ACME"});
등
클래스는 25K 라인이지만, T4부터 모든 라인, 신경을 쓴다? 그것은 우리가 데이터 컨텍스트를 조롱 할 수있게 해 주므로 우리는 질의를 올바르게 받아들이는 합리적인 확신을 가지고 가짜 컨텍스트에 대해 linq을 테스트 할 수 있습니다. 원래 개발자는 repo에 많은 비즈니스 로직을 넣었으므로 알려진 좋은 데이터에 대한 로직을 테스트 할 수 있습니다.
당신이 찾고있는 것은 @Jakub가 좋은 답을 제공 한 통합 테스트를 수행하는 방법입니다. 어떤 테스트 프레임 워크를 사용하고 있습니까? – mkchandler
Vanilla VS 2010을 사용하여 유닛 통합 (소규모 통합?) 테스트를 진행하십시오. 다음과 같은 내용 : 5 개의 잘못된 비밀번호를 사용하여 멤버십 레이어가 계정을 올바르게 잠그나요? 그것과 셀레늄이 잔뜩 엉망이 된 것을 확인하기 위해 수프를 먹는다. –