spring - Hybris 如何在应用程序和集成测试之间管理应用程序上下文
问题描述
我目前是 Hybris 的新手,我正在编写集成测试,这很棒,但是我很难理解 junit 租户的概念以及 Hybris 如何管理该租户的应用程序上下文。
我来自 spring 背景,我可以说很容易加载单独的测试配置或任何配置,并且只是在不影响所使用的主运行时应用程序上下文的情况下对其进行测试,同时可以说用于调试。
但是在 Hybris 中,我有点困惑,因为在服务器运行时,您可以轻松地在租户之间进行交换,并在假设某个用户正在购买东西的同时执行集成测试。
Hybris 是否为 junit 和主租户提供单独的应用程序上下文?无论是或否,Hybris 如何管理租户之间的应用程序上下文?
我在声明 ehCacheManager bean 时第一次遇到这个问题,突然我所有的测试都开始失败 - 缓存处于 SHUTDOWN 模式......这很奇怪。
租户之间是否共享应用程序上下文?它是否在两个单独的集成测试之间共享?它是否在一次测试后被销毁,然后为另一次集成测试创建?
我知道其中一些问题可能看起来令人困惑甚至愚蠢,但如果有人能解释一下 hybris 如何管理租户和测试之间的应用程序上下文,我会很高兴,此外,如果你能分享一些资源或书籍,我将非常感激关于这个话题。
提前致谢 !!!
解决方案
Hybris 是否为 junit 和主租户提供单独的应用程序上下文?无论是或否,Hybris 如何管理租户之间的应用程序上下文?
是的,请在下面找到代表它的方案(来源 SAP:https : //help.hybris.com/1811/hcd/8c63621986691014a7e0a18695d7d410.html 参见图:应用程序上下文的层次结构。)。
在您的情况下,junit 并不是我们所说的“奴隶”租户。
租户之间是否共享应用程序上下文?它是否在两个单独的集成测试之间共享?它是否在一次测试后被销毁,然后为另一次集成测试创建?
正如您在方案中看到的,全局应用程序上下文是共享的,但 web(我认为是 ehCacheManager 的情况)和核心应用程序上下文不共享。当您运行测试时,这些不会改变。