我正在尝试在Visual Studio中测试套接字是否在某些条件下阻塞,这是所希望的。基本方法是将单元测试设置为超时,执行阻塞操作,并在超时到期时通过测试。
我可以做所有这些,有点:
[TestMethod, Timeout(3000)]
public void RockingSockingBlockingTest()
{
bool bPass = false;
try
{
Socket sock = OpenSocket();
int result = blocking_socket_call(sock, ....mumble, ...);
... work more here, maybe raising assertions or throwing exceptions ....
}
catch(Exception ex)
{
bPass = true;
}
Assert.IsTrue(bPass);
}
嗯和好 - 当测试超时时,我实际上得到了一个例外,但我似乎从来没有预先知道会发生什么类型的异常。它似乎取决于超时发生时运行的代码。这意味着如果我想在块中捕获其他异常,我运气不好。
这个问题是否有学校解决方案?