3 回答
TA贡献1946条经验 获得超4个赞
第一个参数是实例,而不是类
YourClass object = new YourClass();
ReflectionTestUtils.setField(object, "field1", value);
TA贡献1921条经验 获得超9个赞
这是我对 ReflectionTestUtils 的一些示例测试。
@ExtendWith(MockitoExtension.class)
class RedisConfigTest {
@Mock
JedisConnectionFactory jedisConnectionFactory;
@Mock
RedisTemplate redisTemplate;
@InjectMocks
@Spy
private RedisConfig config = new RedisConfig(jedisConnectionFactory, redisTemplate);
@BeforeEach
void setUp() {
ReflectionTestUtils.setField(config, "master", "mymaster");
ReflectionTestUtils.setField(config, "redisSentinels", "localhost:6379");
lenient().when(config.jedisConnectionFactory()).thenReturn(jedisConnectionFactory);
lenient().when(config.redisTemplate()).thenReturn(redisTemplate);
}
@Test
void jedisConnectionFactory(){
Assertions.assertEquals(config.jedisConnectionFactory(), jedisConnectionFactory);
}
TA贡献1824条经验 获得超8个赞
它应该是您传递给 setField 的对象的实例。例如,假设 Mockito 它应该去:
@InjectMocks
AbcdImpl abcdImpl;
进而:
ReflectionTestUtils.setField(abcdImpl, "field", "value");
添加回答
举报