46.4 测试你的自动配置
自动配置会受很多因素影响:用户配置(@Bean
定义与Environment
自定义)、状况评估(存在特定库)等。具体地,每个测试应当创建一个定义良好的ApplicationContext
。它代表了那些自定义的结合。ApplicationContextRunner
提供了达成这种目标的好办法。
ApplicationContextRunner
经常会定义成测试类的实例变量,用来收集基础的、普遍的配置。下面的例子确保了UserServiceAutoConfiguration
总是会被调用:
注 如果不得不定义多个自动配置,不需要对它们的声明排序,因为会和应用运行时完全相同的顺序调用它们。
每个测试可以使用runner代表一个特殊的使用案例。例如,下面的样本调用了一个用户配置(UserConfiguration
),并且检查自动配置是否没有采用。调用run
方法提供了一个回调上下文。它可以与Assert4J
一起使用。
也可以很容易地自定义Environment
。如下所示:
最后更新于