2013-01-20 2 views
0

통합 테스트를 위해 데이터베이스 (엔티티 프레임 워크)를 변경하여 데이터베이스에 테스트 레코드를 만들고 테스트가 완료되면 모든 것을 버릴 수 있습니까?통합 테스트 리포지토리 클래스

이제 로컬 개발에 사용하는 데이터베이스를 오염시키고 있습니다.

추신 : 나는 이것이 아주 기본적인 것들이어야한다는 것을 깨달았지만, 어떤 이유로이 문서를 찾을 수 없습니다.

+0

응용 프로그램이 현재 어떻게 설정되어 있는지에 따라 크게 달라질 수 있습니다. EF 컨텍스트의 생성자에서 연결 문자열을 허용합니다.하지만 컨텍스트가 어떻게 생성 되었습니까? DI/IoC 프레임 워크를 사용하는 경우 이것은 앞뒤로 전환하는 것이 매우 쉽습니다. –

답변

0

내가 찾고있는 것을 찾았습니다. 간단히 데이터베이스 이름을 변경하는 것이 더 쉽습니다. DbContext를 이름으로 간단히 생성하여 데이터베이스 이름을 변경할 수 있습니다.

new ApplicationContext("TestDatabase") 

ApplicationContext에의 구현 :

public class ApplicationContext : DbContext, IDbContext 
{ 
    public ApplicationContext() 
    { 
    } 

    public ApplicationContext(string databaseName) : base(databaseName) 
    { 
    } 
} 

내 테스트를 실행하기 전 테스트에 사용할 수있는 별도의 데이터베이스를 만들었습니다.

3

각 테스트를 명시 적으로 또는 설정 방법으로 TransactionScope 블록에 각 테스트를 래핑하는 방법 중 하나입니다. 범위가 커밋되지 않은 경우 변경 내용이 롤백됩니다. Here이 그 예입니다.

관련 문제