Java 在Spring boot中模拟@Value注释时出错
这是我的班级:Java 在Spring boot中模拟@Value注释时出错,java,junit,mockito,Java,Junit,Mockito,这是我的班级: public class Foo { @Value("${myapp.foo}") private String foo; void fooValue(){ // some code } } 这是我的测试课: @RunWith(MockitoJUnitRunner.class) public class FooTest { @InjectMocks private Foo foo;
public class Foo {
@Value("${myapp.foo}")
private String foo;
void fooValue(){
// some code
}
}
这是我的测试课:
@RunWith(MockitoJUnitRunner.class)
public class FooTest {
@InjectMocks
private Foo foo;
@Before
public void setUp() {
ReflectionTestUtils.setField(foo, "myappfoo", "foo");
}
@Test
public void testFoo() {
// some test code
}
}
当我运行测试时,我得到以下错误:
java.lang.IllegalArgumentException: Could not find field 'myapp.foo' of type [null] on target object [Foo@18271936] or target class [class Foo]
at org.springframework.test.util.ReflectionTestUtils.setField(ReflectionTestUtils.java:185)
at org.springframework.test.util.ReflectionTestUtils.setField(ReflectionTestUtils.java:120)
我还想在测试方法中使用字符串变量foo。如何操作。接收第二个参数作为字段名,您可以直接编码
ReflectionTestUtils.setField(foo, "foo", "foo");
第一个参数是目标,第二个是字段名,第三个是值接收第二个参数作为字段名,您可以直接编码
ReflectionTestUtils.setField(foo, "foo", "foo");
第一个参数是目标,第二个是字段名,第三个是值谢谢!以及如何在测试nethod中使用字段名字符串变量
foo
?使用ReflectionTestUtils.getField(foo,“foo”)方法,您需要强制转换它,因为它返回Object。第一个参数是目标,第二个是字段名@谢谢!以及如何在测试nethod中使用字段名字符串变量foo
?使用ReflectionTestUtils.getField(foo,“foo”)方法,您需要强制转换它,因为它返回Object。第一个参数是目标,第二个是字段名@Som