Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在集成测试中使用SpringBoot测试伪造bean_Java_Spring_Spring Boot_Integration Testing_Spring Test - Fatal编程技术网

Java 在集成测试中使用SpringBoot测试伪造bean

Java 在集成测试中使用SpringBoot测试伪造bean,java,spring,spring-boot,integration-testing,spring-test,Java,Spring,Spring Boot,Integration Testing,Spring Test,与@MockBean和@SpyBean相同,是否有类似于@FakeBean/@DummyBean的东西 其思想是实例是100%真实的(具有预期的生产内部状态),并且它覆盖(或者添加bean,以防它没有在配置中声明)上下文中的实例。理想情况下,您不需要创建TestConfiguration类并将其设置为Primary,因为这样您就可以在每次测试的基础上控制伪代码,只有在您需要它的时候。否则,它将使用主 例如,当bean是一个上下文数据收集器时,它非常有用,因此在每次测试之后,它可能会被MockRe

与@MockBean和@SpyBean相同,是否有类似于@FakeBean/@DummyBean的东西

其思想是实例是100%真实的(具有预期的生产内部状态),并且它覆盖(或者添加bean,以防它没有在配置中声明)上下文中的实例。理想情况下,您不需要创建TestConfiguration类并将其设置为Primary,因为这样您就可以在每次测试的基础上控制伪代码,只有在您需要它的时候。否则,它将使用主

例如,当bean是一个上下文数据收集器时,它非常有用,因此在每次测试之后,它可能会被MockReset.cleant清除


实现这一目标最干净的方法是什么。即使我们不是真正的间谍,@SpyBean是我们要走的路吗?

我认为这不是个好主意。自动创建bean可能会有很大的开销,因为在某些情况下,一步一步地创建整个上下文的过程。最好创建TestContext并控制bean的创建,因为哪里需要创建真正的bean,哪里需要创建mock。如果您创建mock,它内部的bean将不会被创建,测试上下文也不需要它,这与自动过程不同

PS。Spring有很好的错误解释(与所需的bean声明相关),并且
@MockBean
@SpyBean
可以在类级别上使用多个类进行声明,以便轻松快速地进行声明。

我认为这不是一个好主意。自动创建bean可能会有很大的开销,因为在某些情况下,一步一步地创建整个上下文的过程。最好创建TestContext并控制bean的创建,因为哪里需要创建真正的bean,哪里需要创建mock。如果你创建mock,它里面的bean将不会被创建,也不会被你的测试上下文所需要,这与自动过程不同。你能用这个来写一个答案吗?我同意,因为我从其他人那里听到了这个解释