【问题标题】:Unit test throwing default admin username not available error单元测试抛出默认管理员用户名不可用错误
【发布时间】:2019-11-01 00:25:26
【问题描述】:

我正在使用 alfresco 6。在我要测试的一种方法中,具有以下代码:

if(AuthenticationUtil.getFullyAuthenticatedUser().equals("xyz"))
{
        return;
}

我想在进行此单元测试时强制此条件为假。

在单元测试中,我有一个@Before,它具有以下内容:

AuthenticationUtil.setAdminUserAsFullyAuthenticatedUser();

在实际测试中我没有任何与AuthenticationUtil相关的代码。

我收到以下错误:

java.lang.IllegalStateException: AuthenticationUtil not yet initialised; default admin username not available
at org.alfresco.repo.security.authentication.AuthenticationUtil.getAdminUserName(AuthenticationUtil.java:450)

我错过了什么?

【问题讨论】:

    标签: java mockito alfresco


    【解决方案1】:

    检查AuthenticationUtil.setAdminUserAsFullyAuthenticatedUser(); 方法。

    它很可能运行 AuthenticationUtil.getAdminUserName() 方法,该方法位于 AuthenticationUtil 类的第 450 行,并且似乎需要用户名 admin。

    【讨论】:

    • AuthenticationUtil 是 Alfresco 中的静态类,无法从测试中调用 setter
    • 如果您查看AuthenticationUtil 的源代码,您可以看到该方法依赖于initialized 标志,这显然与spring 中的InitializingBean 接口有关。这个tutorial 应该告诉你如何配置defaultAdminUserName
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多