2015-04-22 61 views
1

.Net中是否有可能創建一個數據驅動測試,該測試使用IEnumerable<T>作爲DataSourceIEnumerable <T>作爲數據驅動測試的數據源

問題是:
有一個我想測試的類。它的行爲稍有不同,具體取決於它作爲構造函數參數接收的int值。
並且有一個靜態方法返回該構造函數參數的所有可能值的IEnumerable<int>

+0

什麼測試框架? NUnit的? –

+0

你見過Moq嗎? https://github.com/Moq/moq4 – Santhos

+0

@Daniel Earwicker來自Microsoft的默認版本。 – dmigo

回答

0

已找到解決方案。不是很滿意它,但它有效。

[DataSourceGenerator("source.csv")] 
public class DataDrivenTests 
{ 
    public TestContext TestContext { get; set; } 

    [TestMethod] 
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "source.csv", "source#csv", DataAccessMethod.Sequential)] 
    //The source is generated automatically by DataSourceGenerator attribute 
    public void DataDrivenTest() 
    { 
     //Here you can implement a data driven test of your own 
    } 
} 

[AttributeUsage(AttributeTargets.Class)] 
internal sealed class DataSourceGeneratorAttribute : Attribute 
{ 
    public DataSourceGeneratorAttribute(string fileName) 
    { 
     var csvContent = GenerateCsvContent(); 

     File.WriteAllText(fileName, csvContent); 
    } 
    private string GenerateCsvContent() 
    { 
     //Here you can generate content for your csv 
    } 
}