我正在寻找一种使用NUnit编写单元测试的方法,以便如果当前测试需要超过X毫秒才能完成,它应该终止并报告为跳过/成功,但不失败。这基本上与NUnit Timeout属性相反。
这个问题的一点上下文:我有一些调用远程服务器并检查其响应的单元测试。如果存在网络问题,我不希望测试失败,我只希望测试失败,如果它能够获得响应并且响应不正确。与此同时,如果没有收到回复,我想继续并跳过测试。
(我意识到这种方法可能会导致一些错误未被报告,但在我的情况下,我正在寻找没有假阴性报告(例如,没有一次成功的测试,另一次基于我不打算测试的网络连接失败)。)
模拟远程服务器的调用不是更好吗?
使用mock,你将能够把你的单元从它的依赖中分离出来,并精确地测试你的单元本身,它如何处理响应等,而不用担心服务器。
实际上,您可以使用mock故意创建不正确的响应,以查看您的单元如何处理它们,检查任何预期的异常等等。
看Moq