- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我是 JUnittesting 的新手,所以我有一个问题。谁能告诉我为什么我们在 Junit 测试中使用 ReflectionTestUtils.setField()
示例。
最佳答案
正如评论中提到的,java 文档很好地解释了用法。但我也想给你举个简单的例子。
假设您有一个具有私有(private)或 protected 字段访问权限的 Entity 类,并且没有提供 setter 方法。
@Entity
public class MyEntity {
@Id
private Long id;
public Long getId(Long id){
this.id = id;
}
}
在您的测试类中,由于缺少 setter 方法,您无法设置 entity
的 id
。
使用 ReflectionTestUtils.setField
您可以这样做以进行测试:
ReflectionTestUtils.setField(myEntity, "id", 1);
参数说明:
public static void setField(Object targetObject,
String name,
Object value)
Set the field with the given name on the provided targetObject to the supplied value.
This method delegates to setField(Object, String, Object, Class), supplying null for the type argument.
Parameters:
targetObject - the target object on which to set the field; never null
name - the name of the field to set; never null
value - the value to set
但请尝试阅读 docs .
关于java - 在 Junit 测试中使用 ReflectionTestUtils.setField(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44667573/
我正在为一个使用静态类ProcessTimer的类编写单元测试。准确地说,ProcessTimer.startTimer()。 我正在寻找一种方法来模拟此调用。我以前使用过普通的 Reflection
我使用 ReflectionTestUtils 在我的服务类中设置 int 字段来测试该类。我的服务类别如下: @Service public class SampleService { @V
我有一个像这样的静态最终字段: class SomeClass { static final String CONST = "oldValue"; } 我正在尝试在测试中更改该字段,如下所示:
我正在努力解决如何覆盖 .yml 文件内的属性文件 我们使用Spring框架并使用注释(例如@InjectMocks)。 我在配置项目 YML 文件中声明了一个名为“one-platform-prop
我正在尝试使用 Mockito 测试 Spring Boot Controller 。我正在关注本教程:https://www.javacodegeeks.com/2013/07/getting-st
我有一个实现接口(interface)的类。该类有一个私有(private)双字段 field1 ,它使用 @Value spring 注释从应用程序属性中读取值。 我正在开发测试,我需要从该类填充该
我正在开发一个名为 acme-platform 的多模块 Maven 项目,模块设置如下: 顶点管理员 极致通用 极致全局 极致服务 acme-客户端 acme-注册 顶点属性 极限测试 (它们在 a
我是 JUnittesting 的新手,所以我有一个问题。谁能告诉我为什么我们在 Junit 测试中使用 ReflectionTestUtils.setField() 示例。 最佳答案 正如评论中提到
我正在尝试在 CourseServiceImpl 的 courseDao 字段中添加模拟对象,但它不起作用。 @RunWith(SpringJUnit4ClassRunner.class) @Cont
我是一名优秀的程序员,十分优秀!