0
假设我想测试下载错误(例如,服务器关闭或凭据无效)的某些从存储服务器下载文件的代码遵循特定的操作过程, 。测试和例外,嘲笑
我看到两种方法来测试:
选择#1:初始化明显不良凭证的真实下载服务器对象;当某些事情试图用conn做某事时它会触发一个异常;
FileServerConnection conn = new FileServerConnection("Invalid User", "Invalid Password");
选择#2:嘲笑FileServerConnection类并指示模拟扔当FileServerConnection对象被构造异常;
我知道Choice#2优于Choice#1,但我不明白为什么..有人可以解释为什么#2比#1好。我现在看到的第一个问题(星期五下午)唯一的问题是这是一个慢得多的测试(虽然慢了一两秒)。
干杯!的选择#1
PS一个优点是,它是较少的代码行写:-)
选择1不是一个单元测试,它是一个集成测试。 – Aurand
真正的选择#1是一个集成测试,但从未说过它是我原始文章中的单元测试;然后问题就变成了:为什么在这种情况下单元测试而不是集成测试,因为集成测试实际上是少量代码编写的; – MadSeb
@MadSeb - 你的标题字面上说单元测试... –