저는 현재 팀에서 구축하고있는 asp.net mvc 3 웹 응용 프로그램의 단위 테스트에 대해 크게 생각하고 있습니다.단위 테스트 : 실제 데이터베이스 대 조롱
문제는 우리가 정말로 많은 것을 조롱해야한다는 것입니다. 단위 테스트가 모든 웹 서버와 데이터베이스 관련 내용을 다루지는 않는다고 생각합니다.
예 :
public List<Useraccount> GetUseraccounts(Company company)
{
return company.Useraccounts.ToList<Useraccount>();
}
내 devloper은 그가 hisself으로 준비하고 가짜 회사 객체를 주입하는 불평 :
는 다음 코드와 방법을 가지고있다. 그는 데이터베이스에서 실제 개체를 갖고 싶습니다.
내 질문 : Unit-Test 중에 실제 데이터베이스 (SQLite/SQLExpress 또는 다른 것도 가능)를 사용할 수 있습니까? 유용한가요? 장단점은 무엇입니까?
실제 데이터베이스가 없으면 너무 많은 객체를 조롱해야합니다. 예를 들어 이러한 호출이 작동하는지 확인할 수 없습니다.
Useraccount useraccount = UnitOfWork.UseraccountRepository.Get(u => u.EnableCode == enableCode && u.IsEnabled == false).Single<Useraccount>();
* unit * testing과 * integration * testing 사이에 줄이 흐릿 해지는 것처럼 들립니다. –
의미는 무엇입니까? 실제 데이터베이스는 통합 테스트만을위한 것입니까? – mosquito87
제가 믿는 것은 두 가지 검사를 고려해야한다는 것입니다. 하나는 단위 테스트, 클래스가 수행해야 할 일을 테스트하고 종속성을 조롱하는 것입니다. 그런 다음 서비스를 전체적으로 테스트하지만 필요한 경우 타사 서비스를 조롱하는 블랙 박스/통합 테스트의 다음 단계로 이동할 수 있습니다. – Bronumski