【Nunit线程测试】

litter_man 2012-05-02 09:01:30
在用Nunit测试线程时,当线程里面发生异常时,Nunit无法检测,有没有人遇到这种情况,帮忙解决一下:

[Test, RequiresThread]
[ExpectedException(typeof(xxxException)]
public void Test_xxxx12()
{
try
{
Thread th = new Thread(new ThreadStart(fun2));
th.Start();
th.Join();
}
catch (Exception e)
{
throw e;
}
}
上面的fun2函数里面会抛出一个数据库连接的异常,可是Test中不能捕获,Test中的try..catch部分是我自己添加的,预想能不能将fun2中的异常引出来,结果不行
我刚用C#不久,希望各种大神前来.....
...全文
263 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
litter_man 2012-05-05
  • 打赏
  • 举报
回复
第二次发帖就这样了....
qldsrx 2012-05-02
  • 打赏
  • 举报
回复
抛开单元测试,就问题本身我是知道答案的。
因为是其它线程的异常,异常是无法在线程间传递的,为啥?因为代码块是不阻塞的,你的try内部开启了一个线程后,就执行结束了,语句就执行到try的外部去了。之后的线程代码执行不在try的管辖范围之内,自然是无法捕获,异常的捕获及传递,必须要在那个多线程代码内部处理,如果是异常直接传递出来,那么也是在全局捕获这个异常。这是否和单元测试无关?
litter_man 2012-05-02
  • 打赏
  • 举报
回复
工作需要,没办法...有没有人呢遇见这种情况的,帮忙解决一下,谢谢啦
qldsrx 2012-05-02
  • 打赏
  • 举报
回复
你比我强,我都还不知道单元测试能做什么呢,你刚学C#就已经在用了
qldsrx 2012-05-02
  • 打赏
  • 举报
回复
另外我不会用单元测试不代表我不会写测试程序,我的测试程序都是自己手写的,比起难搞懂的现成的工具,自己写测试方法更简单易懂,更轻便。
qldsrx 2012-05-02
  • 打赏
  • 举报
回复
我有说不能捕获函数的异常吗?是你自己张冠李戴我的说法。即使你不用单元测试,直接写一个正常的try-catch方法运行,里面执行一个多线程方法,也是这样,多线程异常不能被捕获而不是单线程函数,2个不同的概念。
litter_man 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

抛开单元测试,就问题本身我是知道答案的。
因为是其它线程的异常,异常是无法在线程间传递的,为啥?因为代码块是不阻塞的,你的try内部开启了一个线程后,就执行结束了,语句就执行到try的外部去了。之后的线程代码执行不在try的管辖范围之内,自然是无法捕获,异常的捕获及传递,必须要在那个多线程代码内部处理,如果是异常直接传递出来,那么也是在全局捕获这个异常。这是否和单元测试无关?
[/Quote]
这个是这样吗?比如try里面有一个函数调用,如你所说的话如果这个函数抛出异常的话是不能捕获的,课事实呢,是可以的,但是为什么用NUnit就不行呢?这是不是Nuint本身不带这个功能呢?求解.....
litter_man 2012-05-02
  • 打赏
  • 举报
回复
没人回答了吗?
能不能用NUint测线程里抛出的异常呀?急需....

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧