gpt4 book ai didi

java - 模拟/伪造存储库(或在没有 persistFormMap 的情况下填充 FormMap)

转载 作者:行者123 更新时间:2023-11-30 03:44:08 25 4
gpt4 key购买 nike

我正在为 HippoCMS 组件编写单元测试,但是我无法解决如何伪造 Repository 对象来模拟 persistFormMap 数据的问题。

我遵循基本的 HST-2 表单建议来实际检索请求数据( http://www.onehippo.org/library/concepts/component-development/hst-2-forms.html ),但是我还没有找到一种简单的方法来模拟/伪造 getWritableSession 的存储库部分(从 persistFormMap() 调用)放入一个假组件管理器中。

public static Session getWritableSession() 抛出 RepositoryException {
如果(HstServices.isAvailable()){
凭证defaultCredentials = HstServices.getComponentManager().getComponent(Credentials.class.getName() + ".writable");
存储库repository = HstServices.getComponentManager().getComponent(Repository.class.getName());
session session =空;
if (存储库!= null) {
if (defaultCredentials != null) {
session =repository.login(defaultCredentials);
} 别的 {
session =存储库.登录();
}
}
返回 session ;
}

有没有一种方法可以不使用 persistFormMap() 来获取提交的数据?或者一种正确伪造存储库的方法(希望不是我在文档中简单查看的内容)。

最佳答案

在测试套件的设置方法中,您可以设置组件管理器 HstServices.setComponentManager(componentManager)确保 componentmanager 是一个模拟。现在您可以控制它返回的内容。这可能需要一些 mock ,这是不幸的。

确保在拆卸中将组件管理器设置为 null,因为它是静态类,可能会导致同一套件中的测试出现问题。

关于java - 模拟/伪造存储库(或在没有 persistFormMap 的情况下填充 FormMap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26163732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com