■ 手順
[1] VSの[テスト]-[ウィンドウ]-[テストリストエディタ]を選択 [2] 該当のテストの行を右クリックして[プロパティ]を選択 [3] [データ接続文字列]を選択 [4] CSV ファイルを選択して [次へ]ボタンをクリック [5] データのプレビュー画面で内容を確認し、[完了]ボタンをクリック => 単体テストメソッドにDataSourceAttribute属性が付与される(下記の「単体試験」を参照のこと)
■ 単体試験
// TestContextは自動生成
private TestContext m_testContext;
public TestContext TestContext
{
get { return m_testContext; }
set { m_testContext = value; }
}
// 途中略
/// <summary>
///GetName のテスト
///</summary>
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\Sample.csv", "TestData#csv", DataAccessMethod.Sequential), DeploymentItem("TestProject1.Results\\Sample.csv"), TestMethod()]
public void GetNameTest()
{
string id = this.TestContext.DataRow["ID"].ToString();
string expected = this.TestContext.DataRow["Name"].ToString();
string actual = SampleClass.GetName(id);
Assert.AreEqual(expected, actual);
}
イメージ : テスト対象クラス・メソッド
public class SampleClass
{
public static string GetName(string id)
{
// 実際の実装(省略)
}
}
サンプル・CSVファイル(Sample.csv)
* 1行目にヘッダー部を、2行目以降にデータ部になるID,Name 1,"Mike" 2,"Tom" 3,"David"
参考文献
http://d.hatena.ne.jp/gsf_zero1/20090708/p1http://handcraft.blogsite.org/Memo/Article/Archives/293
http://www.atmarkit.co.jp/ait/articles/0811/14/news137_3.html
関連記事
MS-Test
VSの単体テストのあれこれhttps://blogs.yahoo.co.jp/dk521123/18458247.html
ファイルを使う機能の単体試験について
https://blogs.yahoo.co.jp/dk521123/31532337.html
private に関するテスト
https://blogs.yahoo.co.jp/dk521123/38022249.html