代码之家  ›  专栏  ›  技术社区  ›  MKB

包grails.plugins.springsecurity在jUnit测试中不存在

  •  0
  • MKB  · 技术社区  · 12 年前

    我正在开发grails应用程序。在应用程序中,视图和控制器只是grails组件。应用程序没有使用域和服务,而是分别使用DTO和BLs java文件。

    我正在编写junit测试,其中要求使用spring安全服务对用户进行重新身份验证。但当我运行测试时,它会给我以下错误:

    [javac] ... error: package grails.plugins.springsecurity does not exist
    [javac] import grails.plugins.springsecurity.SpringSecurityService;
    [javac] ... error: package grails.plugins.springsecurity does not exist
    [javac] private SpringSecurityService springSecurityService = ...
    

    我不知道为什么我会在导入时出错。代码:

    import grails.plugins.springsecurity.SpringSecurityService;
    ....
    SpringSecurityService springSecurityService = ...
    ...
    

    在junit测试中,还有其他更好的方法来重新验证用户吗?

    我在谷歌上搜索过 如何在junit测试中对用户进行身份验证 但没有发现任何有效的解决方案。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Burt Beckwith    12 年前

    我不确定为什么会出现这种特殊的问题,但你不能用单元测试来真正测试安全性。Spring Security是作为一个过滤器链来实现的,因此您需要创建一个请求并应用该链。

    这可以被适当地嘲笑,但这将是一项艰巨的工作。您最好的选择是使用功能测试,使用真实运行的服务器和真实的请求。其他方法出现假阳性的风险太高了。

    推荐文章