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

在Scala中测试注入控制器

  •  1
  • ps0604  · 技术社区  · 8 年前

    我正在努力跟上 this example 在Play的文档中,使用注入对象测试控制器。我复制了这个示例,但在尝试调用网页时出现了一个错误:

    没有用于测试的实现。组件已绑定。

    错误似乎是正确的,因为我没有调用 binding 方法,但如何修复?

    这是我的代码:

    package test
    
    import play.api.mvc._
    import javax.inject.Inject
    import play.api.{ Environment, Configuration }
    import play.api.inject.Module
    
    trait Component {
      def hello: String
    }
    
    class DefaultComponent extends Component {
      def hello = "default"
    }
    
    class MockComponent extends Component {
      def hello = "mock"
    }
    
    
    class ComponentModule extends Module {
      def bindings(env: Environment, conf: Configuration) = Seq(
        bind[Component].to[DefaultComponent]
      )
    }
    
    class Application @Inject() (component: Component) extends Controller {
      def index() = Action {
        Ok(component.hello)
      }
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   ps0604    8 年前

    添加到application.conf

    play {
        modules {
            enabled += test.ComponentModule 
        }
    }