2009-05-19 6 views
1

LTS Datacontext가있는 코드를 단위 테스트하려면 어떻게합니까? 테스트하는 동안 오류가 발생합니다. 많은 Datacontext가 있고 수동으로 Connection 문자열을 추가하는 것은 고통, 모든 제안입니다.Linqto SQL 클래스 테스트

답변

1

음, 다음대로 할 방법 :

내 데이터 레이어 인터페이스를 가지고, 다음과 같은 :

public class MyDataLayer : iMyDataLayer 
{ 
    public string GetMyData(parameters) 
    { 
    return myQueryValue; 
    } 

} 

public interface iMyDataLayer 
{ 
    public string GetMyData(parameters); 
} 

이제 내 생성자에서 내 주요 코드베이스 (비즈니스 로직에 대한 난 지금 내 TDD 프로젝트에서 "가짜"데이터 서비스를 만들 수 있습니다,이와

private iMyDataLayer DataLayer; 

public class MyBusinessLogic(iMyDataLayer dataLayer) 
{ 
    DataLayer = dayaLayer 
} 

public string GetMyData(parameters) 
{ 
    return DataLayer.GetMyData(parameters) 
} 

:) 나는 데이터 계층의 인터페이스에 전달하는 매개 변수가됩니다

public class FakeDataLayer : iMyDataLayer 
{ 
     public string GetMyData(parameters) 
     { 
     return "Some Default Value or Object"; 
     } 

} 

이제 테스트를 실행할 때 가짜 데이터 레이어 객체를 비즈니스 로직에 전달할 수 있습니다. 여기에서 가짜 로직을 호출하고 기본 결과를 다시 얻습니다.

이제 실제 데이터로 작업하지 않을 것입니다. 그러나 가짜 오브젝트를 실제 유효/유효하지 않은 데이터로 설정하면 데이터베이스에 연결하지 않고도 이런 식으로 비즈니스 로직을 테스트 할 수 있습니다.

희망이 도움이됩니다. 당신이 무엇인가에 대한 명확한 설명이 필요하면 알려주세요.

+0

어디서 테스트에서 내 datacontext를 연결합니까? – Greens

+0

대단히 감사합니다. – Greens

+0

Fake 서비스 (보통 데이터 컨텍스트가 정적 결과를 반환 함)를 사용할 수 있기 때문에 데이터 컨텍스트가 없습니다. – CodeLikeBeaker