&引用;倒“;NUnit测试中的超时功能

&引用;倒“;NUnit测试中的超时功能,nunit,timeout,Nunit,Timeout,我正在寻找一种使用NUnit编写单元测试的方法,这样,如果当前测试需要超过X毫秒才能完成,它应该终止并报告为跳过/成功,但不是失败。这基本上与NUnit属性相反 问题的背景:我有一些单元测试调用远程服务器并检查它们的响应。如果存在网络问题,我不希望测试失败,我只希望测试失败,如果它能够得到响应,并且响应不正确。同时,如果没有回复,我想继续,跳过测试 (我意识到这种方法可能会导致一些错误未报告,但在m情况下,我希望不会报告假阴性(例如,基于我不打算测试的网络连接,没有一次测试成功,另一次失败)。)

我正在寻找一种使用NUnit编写单元测试的方法,这样,如果当前测试需要超过X毫秒才能完成,它应该终止并报告为跳过/成功,但不是失败。这基本上与NUnit属性相反

问题的背景:我有一些单元测试调用远程服务器并检查它们的响应。如果存在网络问题,我不希望测试失败,我只希望测试失败,如果它能够得到响应,并且响应不正确。同时,如果没有回复,我想继续,跳过测试


(我意识到这种方法可能会导致一些错误未报告,但在m情况下,我希望不会报告假阴性(例如,基于我不打算测试的网络连接,没有一次测试成功,另一次失败)。)模拟远程服务器的调用不是更好吗

使用mocking,您将能够将您的单元从它的依赖项中分离出来,并精确地测试您的单元本身、它如何处理响应等,而完全不必担心服务器

事实上,您可以使用模拟故意创建错误的响应,以查看您的部门如何处理它们,检查是否存在任何预期的异常,等等


看看。

如果服务器被重命名,或永久脱机,或被防火墙软件阻止,或。。。?你的测试永远不会告诉你他们实际上不再测试任何东西。你是对的,当前的测试不是真正的单元测试,而是更多的集成测试。我知道Moq,所使用的遗留代码由于其设计原因根本无法进行模拟。我认为答案是,NUnit或其他单元测试框架不支持这一点有一个很好的理由——如果您需要这样的功能,那么您正在尝试做单元测试之外的事情。