这里我们以网络设备端到端测试的业务封装,来说明一个业务逻辑封装的场景。
我们在测试过程中,会使用多种测试工具或设备,来测试同一种端到端的业务场景,这些测试设备或工具不仅可以用来封装操作过程,还可以封装一些具体的测试业务流程。
比如在网络设备测试领域,有不止一家网络设备测试仪表商提供产品及相同的测试功能。在网络设备测试领域有很多通用的测试标准,有些标准会提供一些抽象的测试用例,比如RFC2544,这些抽象的测试用例类似我们定义的抽象类,其中的方法没有具体实现,但是定义了输入参数及测试结果的标准。
再比如,在API的接口测试过程中,我们只需要关心API的输入和输出,而不需要关心具体是通过什么方式来发送API和接受API的。
因此,理论上我们可以用抽象的方法映射这些抽象测试用例中的抽象方法,把测试用例中所定义的参数作为抽象方法或抽象类的输入,测试开发者可以使用不同的测试工具来实现不同的抽象方法。
在层次化的设计模式中,越底层的代码其技术相关性越强,越上层的代码其业务性越强,且越抽象。如果这种抽象的测试用例或测试方法被复用得足够多,那么这样的测试过程就有被封装的价值,这种设计思路叫作技术代码下沉。
那么,这样是不是把业务和平台强耦合了呢?
答案是否定的。整个端到端的测试过程本身是可以模块化的,可以作为一种业务驱动的模块,并不影响其他逻辑的运行,这也是利用第三方工具进行二次封装的典型应用。
网络设备包括传统的交换机、路由器、家庭接入的网关