@Service
public class A {
@Value("${a.b.c}")
private String abc;
public void foo() {
sout(abc);
}
}
@SpringBootTest
@SpringBootConfiguration
@RunWith(SpringRunner.class)
@TestPropertySource(locations = "classpath:application.yml")
public class TestA {
@Value("${a.b.c}")
private String abc;
@InjectMocks
private A a;
@Test
public void testFoo() {
this.a.foo();
}
}
当我调试测试方法testfoo()
时,我看到变量abc
是从application.yml
文件中读取的。但是,在foo()
方法中,我看到变量abc
是null。如何设置变量abc
,以便在尝试测试此方法时在方法foo()
中可用?
第一步是回答这个问题:我是单元测试我的类中的代码,还是集成测试Spring和包含我的类的一些代码集合的组合?
如果您正在对代码进行单元测试,那么就没有必要让Spring来完成它的工作。相反,您只需要实例化您的类,设置Spring为您设置的值,执行您正在测试的方法,然后验证您的方法是否正确执行。
下面是按照我的建议重写的单元测试示例:
public class TestA
{
private static final String VALUE_ABC = "VALUE_ABC";
private A classToTest;
@Test
public void testFoo()
{
classToTest.foo();
}
@Before
public void preTestSetup()
{
classToTest = new A();
ReflectionTestUtils.setField(
classToTest,
"abc",
VALUE_ABC)
}
}
我无法找出是否可以在pom.xml文件中读取Spring的application.properties中的任何数据。 拜托,有人能帮我吗? 谢谢你。
在我的java代码中,如何访问存储在JMeter测试计划(jmx文件)中的值?特别是尝试获取ThreadGroup。numthreads,这样我的测试代码就可以知道测试中使用了多少线程。 感谢您的回复。以下是我最终使用的代码:
我有以下控制器类 完成后,我需要在一个测试用例中测试这个方法。我的测试课程如下。我有申请表。/src/test/resources文件夹中的属性文件 当我这样做时,应用程序。属性具有details和otherdetails参数,但返回null。 我应该如何使用它们来获取控制器类中的值?
我正在使用Postman的打包应用程序版本来针对我的Rest API编写测试。我正在尝试管理连续测试之间的状态。为了方便起见,向Javascript测试运行时公开的Postman对象有设置变量的方法,但没有用于读取的方法。 现在,我可以在下一次调用中通过{{key}}结构读取这个值,该结构从当前环境中获取值。但是,这在测试中不起作用;它只在建筑材料中起作用。 那么,有没有人可以从测试中读到这些东西
我让Spring Redis使用和所有默认配置工作,比如default等等。 现在,我试图通过在文件中配置它来进行相同的配置。但是我不知道应该如何创建bean,准确地读取我的属性值。 spring.redis.sentinel.master=themaster spring.redis.sentinel.nodes=192.168.188.231:26379 spring.redis.passwo
我有这种情况。我正在用Spring Boot开发一个REST服务,我有一个dependency jar,这是另一个Spring Boot项目,我使用以下方法将其作为一个依赖项包括在内: https://docs.spring.io/spring-boot/docs/2.1.4.release/maven-plugin/examples/repackage-classifier.html 一切都编译