MailAddressCollection.Add()有时只会在句点上窒息

时间:2014-09-23 16:30:32

标签: asp.net .net integration-testing

我们的生产代码中遇到一个错误,其中未正确引用电子邮件地址显示名称。这有效地展示了破碎的代码:

var recipients = new MailAddressCollection();
var address = "Mr. Smith <mr.smith@example.com>";
recipients.Add(address);

而且,正如它可能应该的那样,它会在生产中抛出FormatException - 一个ASP.NET站点。在显示名称部分周围添加引号似乎解决了生产中的问题:

var address = "\"Mr. Smith\" <mr.smith@example.com>";

但在测试中,没有抛出任何异常。我们的SMTP抽象被正确调用。

为什么格式问题在测试期间/在IIS的上下文之外不会引发异常?


附录:我们意识到我们的服务器仍然在.NET 3.5上,而测试项目则编译成.NET 4.0。

是否有任何证据表明该方法的3.5版本被破坏了? (或“不同。”)


背景故事,为了您的娱乐:报告了一个错误,其中名称中有句号的用户没有收到任何电子邮件(密码重置,新产品通知等)。我们最初的假设是,此电子邮件地址解析步骤需要额外的转义或引用。所以,我的努力集中在增加一些测试证明;但是,事实恰恰相反:他们表明逃避没有任何区别。

经过一天的测试添加测试以找到添加名称周期的重点之后,我让其他几位开发人员帮我解决了问题 - 其中一位开发人员无论测试结果如何都能很好地实现显示,它似乎有效。

我们仍然不知道为什么相关测试没有正确失败。

0 个答案:

没有答案