【发布时间】:2012-01-26 11:05:07
【问题描述】:
我有一个类似的方法:
public List<MyClass> DoSomething(string Name, string Address, string Email, ref string ErrorMessage)
{
//Check for empty string parameters etc now go and get some data
List<MyClass> Data = GetData(Name, Address, Email);
/*************************************************************
//How do I unit test that the data variable might be empty???
*************************************************************/
List<MyClass> FormattedData = FormatData(Data);
return FormattedData;
}
我只是在学习 TDD/单元测试。我的问题是,如何编写测试以确保如果 GetData 返回一个空列表,我将 ErrorMessage 设置为某个值,然后返回一个空列表?
【问题讨论】:
-
使用
ErrorMessage标志有点尴尬 IMO。 -
可能有很多问题,我想向用户展示问题所在。你会建议什么替代方案?
-
如果你遇到错误——意味着你得到的参数是错误的。你应该投一个
exception可能ArgumentException -
如果参数没有错而其他地方出错了怎么办?最好把它放在一个字符串中而不是抛出异常
-
1.你可以抛出任何你想要的异常。 2.
Exception类有一个message属性,把错误信息放在那里。
标签: c# .net unit-testing tdd