2010-04-12 58 views

回答

4

像这样订购你的测试是不好的设计。出于这个原因,大多数单元测试框架都不会让你订购你的测试。这听起来像你应该组织你的测试是这样的:

测试1:测试用户可以登录

测试2:假一登录的用户,使该用户伪造肯定的getUser回报。

您应该确保您的系统设计为允许进行这种测试(伪造/嘲笑部件进行测试)。否则,你将最终得到无法维护的测试,当核心事情发生时,这些测试将全部中断。

想想这样:在第二次测试中,您没有测试登录过程,那么为什么测试会中断登录?它不应该,所以你需要确保你可以删除真正的登录过程的依赖,而是使用一些设置用户登录的方法,不能失败。

+1

这是非常真实的。然而,为了回答用户问的问题(而不是他应该问的问题:-),Silverlight单元测试框架按字母顺序运行测试。例如,当我正在调试一个特定的测试,并且希望它先执行以便我不必等待所有其他测试完成时,我将其名称更改为“aaMyTestName”。 (可能有更好的方法来做到这一点,但我还没有找到它。) – 2010-04-13 02:15:25

+0

@Ken:请添加答案作为答案而不是评论。 – AnthonyWJones 2010-04-13 08:39:47

+0

@Anthony&@Ken:我很想说“不要告诉他那个”。这些是实现细节,我看到NUnit版本之间的测试排序变化,所以这不仅仅是一个理论问题。我的回答是基于他隐含的问题,“我怎样才能写一个测试这些东西的测试套件?”,并可能帮助他重新思考他所遇到的问题。 – 2010-04-13 21:46:17