单元测试失败,我收到以下错误消息,
消息:测试方法ConsoleApp4.Tests.DemoClsTests.ExecuteTest抛出 exception:System.ArgumentNullException:Value不能为null。 参数名称:路径
如何通过单元测试?
类方法
public class DemoCls
{
public void Execute()
{
string dataFolder = ConfigurationManager.AppSettings["Path"];
foreach (string X in Directory.EnumerateFiles(dataFolder, "test" + "*.xml"))
{
}
}
}
单元测试方法
[TestClass()]
public class DemoClsTests
{
[TestMethod()]
public void ExecuteTest()
{
var X = new DemoCls();
X.Execute();
}
}
答案 0 :(得分:1)
dataFolder
的值为null
,表示ConfigurationManager.AppSettings["Path"]
未找到值。
检查测试项目的app.config
文件,看看应用设置键Path
是否存在值。
<apSettings>
<add key="Path" value="<path here>" />
</appSettings>
应该如何重构此测试代码以消除与太多实现问题的紧密耦合。主要是ConfigurationManager
和System.IO
来自Directories