Discuss / Java / 对参数化这个功能的理解

对参数化这个功能的理解

Topic source

**刚才习惯性的Ctrl+Enter换行,结果发送了.....**

看了官方的API文档,参数化被定性为了实验功能,但是对比无参,我们就能发现区别和优缺点。

经典的无参Test仅仅是起到了一个Main的作用,目的极其单纯:不再在类内把Main作为测试入口,而是把这些入口分离出来。所以具体要怎么调用这个函数,流程如何都是要你自己进入这个Main的入口后“面向过程”的编写出来的,适合平铺直叙的想到什么就测什么的大白话代码。

而有参Test则不是这么设计的,他将数据和代码解耦了,非常适合逻辑严重重复的测试。

两者使用上最关键的区别就是

## @Test开始测试后只会执行一次,连带着@BeforeEach和After也只会在其开始和结束的时刻为他执行一次。

## 但是参数化的方法会执行多次,取决于你的参数设置了几对,每次换参都会触发@BeforeEach和After的执行。

**有了参数化的测试,由一次无参数测试包含着大量重复逻辑导致的重复代码,**变成了多次测试一份代码。

对于逻辑重复的简单测试情况而言,可读性更高,优美而不失简单。

而且测试的工具也不用上生产环境,强烈建议大家配个依赖学一下。


  • 1

Reply