2012-05-01 1 views
0

DB에서 데이터를 가져와 필요한 형식 (특정 클래스 형식)으로 제공하는 클래스 (Not (DAL))가 있습니다.VS2001에서 저장 프로 시저를 사용하여 테스트를 거친 유닛 테스트

이제 단위 테스트 케이스를 작성해야하지만 TestContext 데이터 행은 항상 단일 행을 반환합니다.

내 저장 프로 시저로 TestContext를 채우고 싶습니다. 어떻게 저장 프로 시저 이름을 지정할 수 있는지 말해주십시오. 미리 감사드립니다.

여기 코드입니다.

public static List<TextValueField> ExternalDataGet(int providerId) 
    { 
     return ListFactory<TextValueField>.Create(Keys.QAT, "[stats].[GetExternalDataV2]", new object[] { providerId }, TextValueField.Factory); 
    } 
public static List<T> Create(string key, string sp, object[] parameters, FactoryDelegate factory) 
    { 
     List<T> list = new List<T>(); 
     Database db = DatabaseFactory.CreateDatabase(key); 
     string connectionString = db.ConnectionStringWithoutCredentials; 

     using (DbCommand cmd = db.GetStoredProcCommand(sp, parameters)) 
     { 
      try 
      { 
       using (cmd.Connection = db.CreateConnection()) 
       { 
        cmd.Connection.Open(); 
        cmd.CommandTimeout = 0; 
        using (DbDataReader reader = cmd.ExecuteReader()) 
        { 
         try 
         { 
          while (reader.Read()) 
           list.Add(factory(reader)); 
         } 
         finally 
         { 
          if (!reader.IsClosed) 
           reader.Close(); 
         } 
        } 
        cmd.Connection.Close(); 
       } 
      } 
      catch (Exception ex) 
      { 
       Debug.WriteLine(ex.Message); 
       throw new DataAccessException(ex, key, connectionString, sp, parameters); 
      } 
      finally 
      { 
       if (cmd.Connection != null) 
        if (cmd.Connection.State == ConnectionState.Open) 
         cmd.Connection.Close(); 
      } 
     } 
     return list; 
    } 
+0

제공된 인수에 따라 DataSet을 반환하는 메서드를 테스트하려면 어떻게해야합니까? 제게 약간의 아이디어를주십시오. –

+0

질문을 명확히하기 위해 일부 코드를 게시해야 할 수도 있습니다. –

+0

[통계]. [GetExternalDataV2]는 저장 프로 시저의 이름입니다. –

답변

0

나는 내 저장 프로 시저에 의해 TestContext을 채우려. 어떻게 저장 프로 시저 이름을 지정할 수 있는지 말해주십시오.

귀하의 요청을 처리해야합니다.

public static List<TextValueField> ExternalDataGet(int providerId, string storedProc = "[stats].[GetExternalDataV2]") 
{ 
    return ListFactory<TextValueField>.Create(Keys.QAT, storedProc, new object[] { providerId }, TextValueField.Factory); 
} 
+0

위의 코드가 내 요청을 처리합니다. –

+0

응답을 기다리고 있습니다. –

+0

@PavanTiwari : 무엇에 대한 응답? –