2011-05-16 2 views
0

안녕에 의해 테스트 웹 서비스, 나는 서비스 및 EDM 모델이 있습니다independ 서비스 - Model1Container - NUNIT

public class Service1 : System.Web.Services.WebService 
    { 

     Model1Container modelDataBase = new Model1Container(); 

     [WebMethod] 
     public List<Person> getData() 
     { 
      using (modelDataBase = new Model1Container()) 
      { 
       var a = from aa in modelDataBase.Person 
         select aa; 

       return a.ToList(); 
      } 
     } 
} 

내가 NUNIT 함께이 웹 서비스를 테스트 할 수 있습니다. 하지만 프로덕션 데이터베이스에서 모델을 사용하는 서비스에서 문제를 발견하지만 테스트에서는 개발 데이터베이스를 사용하여 서비스를 테스트하려고합니다.

어떻게 데이터베이스에서 서비스를 독립적으로 수행 할 수 있습니까?

public class TestClass 
    { 
     Model1Container model = new Model1Container(); 

     [TestFixtureSetUp] 
     public void SetUp() 
     { 
      using (Model1Container model = new Model1Container()) 
      { 
       Person p = new Person() 
       { 
        name = "Michal", 
        surname = "Nowak", 
        age = 12, 
        dateOfBirth = new DateTime(1987, 12, 3) 

       }; 
       model.AddToPerson(p); 
       model.SaveChanges(); 
      } 
     } 

     [Test] 
     public void TestGetData() 
     { 
      WebService1.Service1 service = new WebService1.Service1(); 
      var actual = service.getData(); 
      Assert.AreEqual(1, actual.Count); 
     } 
    } 

답변

1

테스트를 실행하기 전에 서비스에 속성 설정기를 추가하고 모델 컨테이너를 삽입하십시오.

또한 서비스 메소드에서 컨테이너를 초기화하지 않도록 서비스를 리팩터링해야합니다. (또는 null 인 경우에만 inits)