在教程开始之前,先回顾下单元测试应该有哪些特点?
运行快,自动化,结果稳定,隔离等等。
但是并不是所有的方法都能写出这样的单元测试。比如说有如下类:
public class Foo
{
private Log _log;
public Foo(Log log)
{
_log = log;
}
public void DoA()
{
//do something
_log.Write("Finish A");
}
}
这个类依赖于一个日志对象Log
public class Log
{
private readonly string _uri;
public Log(string uri)
{
_uri = uri;
}
public void Write(string text)
{
using (var stream = File.AppendText(_uri))
{
stream.Write(text);
}
}
public string Read()
{
if (!File.Exists(_uri))
{
return string.Empty;
}
using (var stream = File.OpenRead(_uri))