《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(7)

简介: 《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(7)

《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(6) https://developer.aliyun.com/article/1232414?groupCode=java



五、 注入依赖对象

 

当模拟完这些类成员对象后,我们需要把这些类成员对象注入到被测试类的实例中。以便在调用被测试方法时,可能使用这些类成员对象,而不至于抛出空指针异常。

 

1. 利用Setter方法注入

 

如果类定义了Setter方法,可以直接调用方法设置字段值。


image.png

2. 利用ReflectionTestUtils.setField方法注入

 

JUnit提供ReflectionTestUtils.setField方法设置属性字段值。


image.png

3. 利用Whitebox.setInternalState方法注入

 

PowerMock提供Whitebox.setInternalState方法设置属性字段值。

image.png

4. 利用@InjectMocks注解注入

 

@InjectMocks注解用来创建一个实例,并将其它对象(@Mock、@Spy或直接定义的对象)注入到该实例中。@InjectMocks注解需要配合@RunWith注解使用。

 

image.png

5. 设置静态常量字段值

 

有时候,我们需要对静态常量对象进行模拟,然后去验证是否执行了对应分支下的方法。比如:需要模拟Lombok的@Slf4j生成的log静态常量。但是,Whitebox.setInternalState方法和@InjectMocks注解并不支持设置静态常量,需要自己实现一个设置静态常量的方法:


image.png

具体使用方法如下:

image.png

注意:经过测试,该方法对于int、Integer等基础类型并不生效,应该是编译器常量优化导致。

 


《Java单元测试实战》——编写方法:Java编程技巧之单元测试用例编写流程(8) https://developer.aliyun.com/article/1232412?groupCode=java

相关文章
|
3天前
|
Java
java基础--程序流程控制
- **for循环案例**:求1-100的和及奇数和。 - **while循环**:未知循环次数时使用,基础案例:打印"Hello World"五次。 - **do-while循环**:至少执行一次,区别于先判断的for和while循环。 - **循环嵌套**:一个循环内含另一循环,例如打印矩形。 - **跳转语句**:`break`用于提前结束循环,`continue`跳过当前循环迭代。 ```
|
3天前
|
Java 程序员
java基础--程序流程控制(1)
学习编程中的分支结构,主要涉及if和switch。if分支用于条件判断,常见于体温检测和支付场景,有三种形式:单if、if-else和if-else if...else。switch通过比较值来选择执行代码块,适用于星期安排等案例。选择if或switch取决于判断类型:范围判断适合if,逐值比较适合switch。使用switch注意数据类型限制(如byte、short、int、char及JDK5后的枚举和JDK7后的String)、case值的唯一性和字面量特性,以及避免忘记break导致的穿透现象。
|
6天前
|
XML Web App开发 JavaScript
软件测试 -- Selenium常用API全面解答(java)
软件测试 -- Selenium常用API全面解答(java)
18 0
|
14天前
|
IDE Java 测试技术
Java测试三两事
Java测试三两事
12 1
|
14天前
|
监控 数据可视化 IDE
python自动化测试实战 —— 单元测试框架
python自动化测试实战 —— 单元测试框架
|
14天前
|
Java 索引
Java新手导航:一文掌握流程控制
Java新手导航:一文掌握流程控制
10 0
|
14天前
|
Java API
java提交钉钉审批的一个流程例子
java提交钉钉审批的一个流程例子
20 0
|
14天前
|
Java 测试技术
Java一分钟之-控制流程:if条件语句与switch
【5月更文挑战第8天】本文探讨了Java编程中的`if`和`switch`控制流程语句,强调了常见问题和易错点。对于`if`语句,需注意使用大括号避免逻辑错误,完整比较操作,以及理解`&&`和`||`的短路行为。在`switch`语句中,要注意只能基于常量进行判断,每个`case`后应有`break`,并提供`default`分支。避免错误的策略包括始终使用大括号、确保清晰的条件、进行代码审查和编写单元测试。掌握这些要点对编写高效、可维护的代码至关重要。
21 0
Java一分钟之-控制流程:if条件语句与switch
|
14天前
|
前端开发 JavaScript Java
java测试链接超时返回前端
java测试链接超时返回前端
21 0
|
14天前
|
安全 IDE Java
Java串口通信技术探究2:RXTX库单例测试及应用
Java串口通信技术探究2:RXTX库单例测试及应用
33 4

热门文章

最新文章