如何编写针对接口默认方法的零代码JUnit测试用例
针对接口默认方法的零代码JUnit测试用例写法
这里说的“零代码”,指的是不用写额外的测试实现类,靠接口继承和JUnit注解就能搞定测试。
具体步骤
- 新建一个测试接口,让它继承你要测的目标接口
A - 在这个测试接口里写一个带
@Test注解的默认方法,直接调用目标接口的method1(),要是需要验证结果或者副作用,再加断言就行 - JUnit 5会自动识别并执行这个测试接口里的测试方法
代码示例
原目标接口
public interface A { default void method1() { // 你的默认方法逻辑 } }
测试接口(零代码核心)
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public interface ATest extends A { @Test default void testMethod1() { // 直接调用要测试的默认方法 method1(); // 要是method1有逻辑需要验证,比如修改了某个状态,就在这加断言 // 举个例子:如果method1会设置某个值,这里可以断言值是否正确 // assertEquals(expectedValue, someState); } }
为啥能这么玩
JUnit 5支持把接口里带@Test注解的默认方法当作测试方法来执行,不用写测试类的实现,完全靠接口继承就完成测试,刚好符合“零代码”的要求。
内容的提问来源于stack exchange,提问作者Theodore
相关产品推荐
相关产品推荐

