.netcore项目下xunitTest单元测试 按顺序测试

        公司项目长期的计划中需要做自动化测试和部署,近期由于项目的推进现在需要把做单元测试先做一部分。项目是用.net core开发,前后端完全分离,前后端用API接口的方式进行业务数据流通。

        为什么研究xunitTest测试的顺序呢,一方面是自己才接触单元测试,以前也没玩过这东西,另一方面是因为一开始考虑到业务方面的流程是有顺序的,接口数据的效验也是有顺序的,其实在我研究好了这个之后发现:其实虽然每个API的数据方面是有顺序的关系,单元测试并不一定是需要顺序)。

        目前我们的项目有4个重要的环节,报备→带看→认购→签约这要一个顺序,一开始想着的是从报备这里产生的数据,后续3个步骤都会使用这一条数据测试,可是后来多玩了一会儿单元测试发现并不需要这样。现在进入正题如果真的需要按顺序执行单元测试的时候怎么办呢?其实很简单

第一种方法:定义显示名称

[Fact(DisplayName= "1.测试确认报备(报备ID)")]

执行顺序默认会更具显示名称执行。

 

第二种方法:重新定义执行顺序

1.添加排序类,继承至Xunit.Sdk.ITestCaseOrderer,实现它的排序接口

namespace XKJReportTest.PlayList
{
   public class TestCaseOrderer : Xunit.Sdk.ITestCaseOrderer
    {
        public IEnumerable<TTestCase> OrderTestCases<TTestCase>(IEnumerable<TTestCase> testCases) where TTestCase : ITestCase
        {
           
            testCases = testCases.OrderBy(o => o.DisplayName);
            return testCases;
        }
    }
}

接口参数 testCases 就是单元测试的所有测试用例,在这个接口里面对它进行重新排序就可以了,自己可以根据实际需求操作。

2.在测试类上面添加排序

[TestCaseOrderer("XKJReportTest.PlayList.TestCaseOrderer", "XKJReportTest")]

第一个参数排序类的名称,第二个参数是单元测试项目的名称(程序集名称)

全剧终!!!

顺便在说一下我写单元测试的思路吧:

虽然我上面截图上的几个单元测试是数据强相关的,但是最后我的处理的大概步骤是:

1.先查询本个单元测试用例(也就是这次要测试的API)可以用的数据

2.然后组合请求体

3.请求调用API的manager层,control层没有测试。

4.在去查询数据库对应表的数据来断言API功能是否正确,主要是断言各个数据表的数据条数,特别重要的数据值也会断言,比如状态之内的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值