1
.Net中是否有可能創建一個數據驅動測試,該測試使用IEnumerable<T>
作爲DataSource
?IEnumerable <T>作爲數據驅動測試的數據源
問題是:
有一個我想測試的類。它的行爲稍有不同,具體取決於它作爲構造函數參數接收的int
值。
並且有一個靜態方法返回該構造函數參數的所有可能值的IEnumerable<int>
。
.Net中是否有可能創建一個數據驅動測試,該測試使用IEnumerable<T>
作爲DataSource
?IEnumerable <T>作爲數據驅動測試的數據源
問題是:
有一個我想測試的類。它的行爲稍有不同,具體取決於它作爲構造函數參數接收的int
值。
並且有一個靜態方法返回該構造函數參數的所有可能值的IEnumerable<int>
。
已找到解決方案。不是很滿意它,但它有效。
[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
}
}
什麼測試框架? NUnit的? –
你見過Moq嗎? https://github.com/Moq/moq4 – Santhos
@Daniel Earwicker來自Microsoft的默認版本。 – dmigo