Xunit.net 单元测试学习——按顺序测试

最近一直在提高编码的质量,为了保证质量,必须有一套趁手的兵器,Xunit.Net 就是如此霸气的利器。

怎么编写单元测试

怎么会有如此低级的疑问呢?因为从接触单元测试,到使用上,真的不是一个简单的心路历程,不是不想动手写单元测试,而是非常写单元测试,然而每一次都被需要Mock许多的测试条件而不得不放弃。当然有很多精致的Mock教程,然而感觉都没有能解决心中的疑虑。
有幸读了一本关于架构解说的书,其思路非常好!给大家分享下:

需要单元测试的代码实际上是开发人员自己写的逻辑,测试逻辑所依赖的环境是否正常不是单元测试的目的!在环境访问代码中引入逻辑,只会让逻辑更难测试,导致逻辑代码无法进行单元测试。**因此,可单元测试的代码,才能够采用单元测试!**判断可测试的代码还有一个方法,就是看这个方法能否用一个main函数直接运行,如果可以就是可以单元测试的代码,可测试的代码还有另外一个特征,就是该方法单元的参数,开发人员可以自由模拟,不需要依赖外部环境。
读了这段易经经,立马就解了胸中多年的疑惑。

用Xunit 顺序执行单元测试

Xunit默认采用的是并行执行所有的单元测试,因此是乱序的!!
一般情况下,也不建议使用顺序方式进行,那样其实存在了显示的依赖,并且会影响不通过的数量(如果数量也考核的话,千万不要使用该方法!否则,后果自负!)
原理就是自定义一个排序执行算法:原始例子见: https://github.com/xunit/samples.xunit/blob/master/TestOrderExamples/TestCaseOrdering/PriorityOrderer.cs
在这里插入图片描述
步骤:
1、拷贝自定义属性和排序类到测试项目;
2、在需要排序的测试类上增加 [TestCaseOrderer(“FileServerUnitTest.PriorityOrderer”, “FileServerUnitTest”)]
注意:第一个参数是类全名,第二个是命名空间。写错了不生效,没任何提示!!!!
3、需要排序的用例增加[Fact, TestPriority(1)]
OK。

发布了112 篇原创文章 · 获赞 16 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/webmote/article/details/88527515