我有一个例子,我有一个@Factory
注释类,它创建一个bean并调用一些代码。我已经启用了急切的单例初始化,并且调用了bean工厂方法,即使在应用程序启动时它没有在任何地方使用。但是,对于测试,即时初始化不起作用,并且不创建bean:
应用程序:
public class Application {
public static void main(String[] args) {
Micronaut.build(args)
.eagerInitSingletons(true)
.mainClass(Application.class)
.start();
}
}
@Factory
public class Config {
@Singleton
@Bean
public Response response() {
System.out.println("Invoked");
//invoking some code
return new Response("test");
}
}
以及测试:
@MicronautTest(application = Application.class)
class ApplicationSpec extends Specification {
@Inject
EmbeddedApplication<?> application
void 'test it works'() {
expect:
application.running
}
}
因此,在执行测试时,不会调用来自Config
类的response
方法,即使启用了singletons
,并且它在应用程序正常启动时工作。
问题是:如何为micronaut测试启用热切的单例初始化?
您可以尝试使用自定义上下文生成器吗?
你的测试类
@MicronautTest(contextBuilder = CustomContextBuilder.class)
您的CustomContextBuilder:
public class CustomContextBuilder extends DefaultApplicationContextBuilder {
public CustomContextBuilder() {
eagerInitSingletons(true);
}
}
但它会抛出以下错误: 那么如何让这个库在单元测试中工作呢?
我在测试用例中提交了一个网络请求,但这有时需要超过2秒(默认超时)。 如何增加单个测试用例的超时?
同步模式的读写测试,使用Simple Producer & Simple Consumer 备注: 1台客户机,8台Talos机器,8台Hdfs,8台HBase,Talos与Hdfs/HBase混布,机型均为2U; 读写同步,每个partition对应一个线程; ThroughPut指的是client出口/入口带宽; QPS是集群整体处理能力,非单台serverQPS 场景一:只写,batch=1
在JUnit4下,我有一个测试套件,它使用注释来引导框架。这是能够在测试期间构造某些对象所必需的。它还将一些任意应用程序属性加载到静态中。这些通常特定于当前测试套件,并且将被整个套件中的众多测试使用。我的测试套件看起来像这样(其中FrameworkResources扩展了ExternalResources并做了很多引导工作): 上面的工作非常好,主构建执行所有测试套件及其各自的测试用例(?)没有问
我的项目的设置是- 用于持久化的Spring JDBC 下面是我的应用程序的日志,它捕获了与数据库的交互。 日志中有两件事是清楚的- 连接池仅在收到执行查询的第一个请求时才开始创建连接 一个包含4个连接的池需要将近30秒的时间来初始化 我的问题是- 如何配置DBCP在启动时自动初始化? 创建连接真的需要那么长时间吗? 注意:请不要建议切换到C3P0或Tomcat连接池。我知道这些解决方案。我更感兴
问题内容: 我有一个使用Angular Translate的应用程序(https://github.com/PascalPrecht/angular- translate )。Translate在浏览器中的应用程序中工作得很好,但是当我尝试测试任何控制器时,我得到 错误:意外的请求:GET locale / locale-en.json 。由于在启动时会翻译GET请求以获得语言文件,因此如何对控制