gpt4 book ai didi

Micronaut:将带有@Property 的值列表注入(inject)测试类无法按预期工作

转载 作者:行者123 更新时间:2023-12-02 19:49:07 25 4
gpt4 key购买 nike

我如何定义一些特定的属性来测试它是一个列表而不仅仅是一个字符串?

documentation explains, how to do with string ,但我无法将 value 设置为字符串列表。

application.yml

items:
- "Item 1"
- "Item 2"

测试文件:

@MicronautTest(environments = ["test"])
class MyTest {

@Test
@Property(name = "items", value = "Item 1,Item 2") // this does not work
fun justWithOneItem() {
// ...
}
}

在实际代码中,这是有效的(as documented here)

项目文件:

@Singleton
class SomeClass {
@set:Inject
@setparam:Property(name = "items")
var items: List<String>? = null

// ...
}

我知道我可以创建一个 application-test.yml 并执行

@MicronautTest(environments = ["test"])
class MyTest {
// ...
}

但我更愿意以编程方式设置它,而不是创建一个新的 env/yaml 文件。

最佳答案

我认为您有 2 个选择:

  1. 使用 @Property(name = "items[0]", value = "Item1")@Property(name = "items[1]", value = "项目 2")

  2. 更改您的测试以实现 TestPropertyProvider 并通过返回的映射提供配置

关于Micronaut:将带有@Property 的值列表注入(inject)测试类无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com