- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 micronaut,在理解如何进行单元测试方面遇到一些困难。
我有一个简单的应用程序,只有一个 Controller (返回 hello)。
现在我想测试这个端点。来自 springboot,我期待 micronaut 有一些像 SpringRunner 这样的运行器类,但我找不到。 micronaut中是否有用于运行测试的runner类?
来自文档here我发现我可以使用 HTTPClient 测试我的其余端点。我尝试了这两种方法
这是我的测试类的片段
@MicronautTest
class HelloControllerSpec {
@Inject
EmbeddedServer server;
@Inject
@Client("/")
HttpClient client;
@Test
void testHelloWorldResponse() {
//client and server are null
.........
}
}
和
@MicronautTest
public class HelloClientSpec {
@Inject
HelloClient client;
@Test
public void testHelloWorldResponse(){
//client is null
}
}
根据我的观察,注释@MicronautTest
似乎没有做任何事情。 @Inject
和 @Client
的情况相同,当我运行测试时,所有字段均为空。所以我想知道@MicronautTest
到底是做什么的?
我可以让它工作的唯一方法是显式启动服务器(EmbeddedServer
上的@Inject
不执行任何操作),如下所示
server = ApplicationContext.run(EmbeddedServer.class);
helloClient = server.getApplicationContext().getBean(HelloClient.class);
即使这样,它也会启动一个服务器实例。这不是我想要的。因为我不想启动服务器进行单元测试。另外,我不想以这种方式从应用程序上下文中获取 bean。 为什么@Inject
、@Client
、@EmbeddedServer
在我的情况下不起作用,我在这里遗漏了什么吗?
对于 springboot,我只能单独测试 weblayer(使用mockmvc 和 springboottest),而不是启动整个应用程序上下文。 micronaut 中有等效的吗?
我使用的是 micronaut 1.0.2
最佳答案
对于遇到此问题的任何人。这里有一些提示。这就是我的案例中解决问题的方法。谨此提及 Jeff Scott Brown,他的建议将我引向了正确的方向。
请检查 micronaut 版本,
我安装了 micronaut 1.0.2
版本,通过它我生成了应用程序。但我关注的文档是最新版本,即 1.2.3
请检查您的 pom 或构建文件中的 junit 版本。如果您使用最新版本(1.2.3)生成应用程序,您将拥有 Junit-5 和 Jupiter 依赖项,如果您使用旧版本(1.0.2),您将拥有 Junit4。
为了使注释 @MicronautTest
工作,您需要 Junit5
关于java - Micronaut 单元测试 : need clarification on @MicronautTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301944/
我正在使用 Micronaut 为应用程序中的 Controller 编写 Spock 测试。当使用 @MicronautTest(application=Application) 时,它会抛出异常消
使用 MicronautTest 和 EmbeddedServer 启动服务器与在 Micronaut 框架的单元/集成测试中使用它们有什么区别。 选项 A: @MicronautTest publi
我正在使用Micronaut作为开发 AWS Java Lambda 的框架。 Micronaut 支持 @Value对于阅读,嗯,“值(value)观”。 @io.micronaut.context
我正在尝试使用 micronaut,在理解如何进行单元测试方面遇到一些困难。 我有一个简单的应用程序,只有一个 Controller (返回 hello)。 现在我想测试这个端点。来自 springb
如何将以下内容注入(inject)测试,因为不允许构造函数参数 并且它无法初始化注入(inject)的bean @MicronautTest class ApplicationTest:StringS
我是一名优秀的程序员,十分优秀!