我想在测试中覆盖资源的值:
@SpringBootConfiguration
public class MyExampleConfig {
@Value("classpath:my-example-resource.yml")
private Resource myExampleResource;
}
有人知道我可以在测试中覆盖“ classpath:my-example-resource.yml”值吗?
答案 0 :(得分:1)
如果您正在运行@SpringBootTest,则可以使用以下注释:
@RunWith(SpringRunner.class)
@SpringBootTest(properties = {
"key=value",
"key=value"
})
它们将覆盖默认值。
答案 1 :(得分:1)
您可以在资源下为测试包拥有一个单独的application.properties文件,并且可以定义一个键值对,即:
data = [((1.0, 54, 0.0), 'less'),
((0.0, 55, 0.0), 'less'),
((0.0, 26, 0.0), 'less'),
((1.0, 40, 0.0), 'more'),
((1.0, 25, 1.0), 'less')]
from collections import defaultdict
result = defaultdict(list)
for value, key in data:
result[key].append(value)
print(result)
在此文件中,并在代码中使用如下
classpath=classpath:my-example-resource.yml
答案 2 :(得分:1)
您可以在测试包中将创建测试配置(ApplicationTest
)与测试.properties
或.yml
一起使用,然后在测试中使用
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ApplicationTest.class)
public class Test {
@Test
public void test() throws Exception {
//some code
}
}