根据您提供的信息,我建议您尝试在值周围使用双引号 (")。
其次,我总是将所有字段都视为字符串,并在我的代码中调用适当的解析方法。
我在 CSV 文件中执行以下操作:
input,expected
"1600,1","1600,1"
"1600","1600"
一个简单的测试方法读取两个值。输入被解析为 Double,预期被视为字符串。
[DeploymentItem("UnitTest\\TestData.csv"),
DeploymentItem("TestData.csv"), TestMethod(),
DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\TestData.csv",
"TestData#csv",
DataAccessMethod.Sequential)
]
public void Test()
{
double input= System.Double.Parse(TestContext.DataRow["input"].ToString());
string expected = TestContext.DataRow["expected"].ToString();
Assert.AreEqual(input, expected);
}
我知道这是一个非常基本的例子,也许我正在做一些不被建议的事情。我在 VS2010 中进行单元测试的经验有限,因此请随时提出对此答案的改进建议。
这个答案是基于我阅读一些十进制值的问题。这是为了测试我目前正在实施的格式化程序。