我正在做一个关于单元测试的好处的演讲,并且我想举一个意想不到的后果的简单例子:在一个类中更改代码会破坏另一个类的功能。
有人可以提出一个简单,容易解释的例子吗?
我的计划是围绕此功能编写单元测试,以证明我们知道可以立即运行测试来破坏某些功能。
最佳答案
一个稍微简单,因此也许更清晰的示例是:
public string GetServerAddress()
{
return "172.0.0.1";
}
public void DoSomethingWithServer()
{
Console.WriteLine("Server address is: " + GetServerAddress());
}
如果
GetServerAddress
更改为返回数组:public string[] GetServerAddress()
{
return new string[] { "127.0.0.1", "localhost" };
}
DoSomethingWithServer的输出将有所不同,但仍将全部编译,从而产生甚至更微妙的错误。
第一个(非数组)版本将打印
Server address is: 127.0.0.1
,第二个版本将打印Server address is: System.String[]
,这也是我在生产代码中也看到的。不用说它不再存在!