我很郁闷的MS测试。我想创建一个集成测试,以便我可以检查我的存储库是否按预期执行所有CRUD操作。 Therfor我创建了3种测试方法MS测试有序测试 - 我怎样才能让它以清晰和简单的方式运行?
- 我在哪里添加数据,然后再次读取 - >测试suceeds如果插入的项目可以被检索
- 我在哪里更新插入项,然后又看了一遍 - >测试suceeds如果检索项目具有相同的密钥但已更改数据
- 我在哪里删除插入的项目并尝试再次阅读 - >如果无法检索项目,则测试结束。
我想这样做的主要原因是为了减少我需要的测试设置的数量。
第一个想法是添加一个测试方法,它可以做所有事情,但如果测试失败,比第三部分我无法看到,其他人已经成功。
这就是为什么我尝试了有序测试,应该可以说明框架调用方法的顺序。只要我使用我平常避免的测试视图,这就行得通。我通常使用control + R + T,但是这也会以随机顺序执行每个方法,而不是在定义的方法中执行。最后但并非最不重要的一点是,如果我想在构建机器上执行有序测试,似乎必须做额外的工作。
我不明白为什么这些方法是以随机顺序调用的。我无法理解为什么我需要一个外部文件,并且无法轻松定义代码中的顺序。
所以我真正的问题是: 我做错了什么?为什么微软将这种奇怪的功能添加到它的工具中?为什么不说:[TestMethod(“CRUD”,1)]并使用属性的参数来定义组和顺序。
在我看来,微软(再次)MS测试中的一个很难的方式,可以做很容易的事情。
感谢您的帮助。
谢谢你的回答。我从来没有将MS Test看作单元测试框架,即使这个词在用户界面中也经常使用。我的意思是,我们有可能附加数据库,检查应用程序用户界面的行为,并在需要创建参数化测试时使用文件。这听起来更像是集成和系统测试,而不是像微小和易于执行的单元测试那样在理论上进行描述。不要误会我的意思,但现在我明白了Roy Osherove在写道时所说的话:“MS测试就像IE6” –
嗯,我个人仅将它用于单元测试,但我确实看到了你的观点。看起来很奇怪,他们有这样的理念,然后允许你做需求文件和测试运行的东西。我来自xUnit背景,所以MS Test有一些问题。对于你正在做的事情(有序测试,可能值得一看,如果NUnit或MBUnit会支持你的测试排序 - 你可能更喜欢使用它们......把它们想象成Firefox和Chrome到MSTests的IE6 :)) –