2012-05-01 14 views
0

DBからデータを取得し、必要な形式(特定のクラス形式)で提供するクラス(Not(DAL))があります。VS 2010のストアドプロシージャによるテスト駆動型ユニットテスト

私は単体テストケースを書く必要がありますが、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

@パヴァンティワリ:何に反応しますか? –

関連する問題