我真的开始享受单元测试,并向单元测试大师提出以下问题.
比如说我有以下课程
public class FileMapper
{
public Dictionary<string, string> ReadFile(string filename, string delimeter){}
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,你们通常如何对Parser或ReadFile方法进行单元测试?
给定您提供的方法签名,您可以"简单地"通过使用大量不同的输入调用ReadFile方法对其进行单元测试,并验证返回值是否正确.
但是,这可能导致模糊测试,因为非常重要的测试输入隐藏在文件中,而不是在您查看每个测试时可见.
这是TDD展示其力量的地方,因为它应该促使我们考虑更好的API.
例如,您可以将方法更改为:
public Dictionary<string, string> ReadFile(TextReader reader, string delimeter)
Run Code Online (Sandbox Code Playgroud)
从文件中获取TextReader仍然非常容易,但现在您也可以使用StringReader来提供单元测试输入.
此更改不仅可以更轻松地对ReadFile方法进行单元测试,还可以使该方法更加普遍可用,因为它不再与文件系统紧密耦合.
归档时间: |
|
查看次数: |
505 次 |
最近记录: |