2012-08-28 24 views
0

在我的silverlight单元测试中,我有几个单元测试方法,其中每个方法中我将Thread.Name设置为某个字符串。现在这应该会在第一次之后崩溃,因为Thread.Name在它已经被分配后不能被设置,我也检查过每个测试方法都在一个具有与其他人相同的管理标识的线程上运行,所以我困惑为什么它不会抛出一个错误,在每次单元测试运行后,线程是否以某种方式“重置”?Silverlight单元测试中的线程重命名

+0

您使用哪个测试运行? – seldary

+0

我使用Silverlight for Windows Phone单元测试框架,设置完全像这样http://www.smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone -7 – user977198

回答

0

所以我想你正在使用MSTest - MSTest使用ThreadPool的新线程进行每个测试(它也为每个测试创建一个全新的测试类)。
尽管它有点慢,它确保了测试的隔离(如果你并行运行它们更重要)。

你(可能)不应该打扰与测试之间的共享状态,因为每个测试应该独立...

+0

我不认为我在这个页面上http://www.jeff.wilcox.name/2009/03/asynchronous-testing/他提到桌面单元测试(我假设这是mstest)使用每个单元测试的新线程和应用程序域;然而,它表示silverlight单元测试在主UI线程中执行所有单元测试,这是有道理的,但它并不能解释每次单元测试之间会发生什么情况,让我可以一次又一次地重命名线程。 – user977198