可以看到,其中前三个Case(测试功能01,02,03)步骤如下,创建DB连接->打开浏览器->执行功能->关闭浏览器->释放数据库连接。而功能测试04仅仅是需要操作数据库而已,没有操作浏览器的需求。因此,不需要在浏览器中进行操作。对于这样的一个场景,直接能想到的方法是编写4个测试方法打上前面的[Fact]标签,每个方法中创建数据库连接,打开浏览器,操作,然后释放数据库,关闭浏览器。但这样的做法有很多的问题,比如会多次占用浏览器驱动和数据库连接这样的非托管资源。而打开数据库连接和浏览器驱动往往是比较耗时的操作,多次打开会无端的增加Test case的运行时间。
那么,如何来设计测试步骤呢?这里,我建议满足下面几个条件(当然也是为了讲解今天的内容):
(一)xUnit.Net 共享数据的方式对于之前描述的业务场景,我们需要在每个Test Case执行前后,一组Test Case执行前后,所有Test Case执行前后这三个维度上添加自定义的操作。对应下来: