单元测试Spring ApplicationEventPublisher

时间:2018-07-24 17:46:44

标签: spring junit

我正在尝试为以下代码编写单元测试:

public void doSomething(List<Object> someObjects){
    // Some logic I want to test...

    eventPublisher.publishEvent(someEvent);
}

因此,在项目中,我将此方法称为对对象列表执行某些逻辑的方法,然后其结果将发布Application事件,结果是一个已接收的方法。

我想通过单元测试来验证该方法中的逻辑,但是我不确定如果该方法没有直接返回而是发布域事件,那么该如何编写单元测试。正确的方法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

作为单元测试的一部分,足以验证`eventPublisher'是否足够。用正确的参数调用。而且,请记住,单元测试是要测试的方法的每一行代码的文档。

您必须模拟测试中的@ViewChild('wrapperContainer', { read: ViewContainerRef }) container: ViewContainerRef; ngAfterViewInit() { this.something = this.snackBarService.open( 'message text', 'button text', { viewContainerRef: this.container} ); } ,并使用eventPublisher来捕获调用消息时传递的参数。

理想情况下,您的测试应如下所示:

ArgumentCaptor