无法在子曲线中使用修改键

  • 本文关键字:修改 曲线 scala subcut
  • 更新时间 :
  • 英文 :


将按照承诺的修改工作应通过:

import org.scalatest.FunSuite
import org.scala_tools.subcut.inject.NewBindingModule
import org.scala_tools.subcut.inject.BindingModule
import org.scala_tools.subcut.inject.Injectable
import org.junit.Test
case class Resource1(name: String)
class ResourceClient(implicit val bindingModule: BindingModule) extends Injectable {
    val res1 = inject[Resource1]
}
object Config1 extends NewBindingModule(module => {
    module.bind[Resource1] toSingle new Resource1("name1")
})
class TestModifyBindings extends FunSuite {
@Test
def test1() {
    implicit val bindingModule = Config1
    val rc = new ResourceClient
    assert(rc.res1.name == "name1")
    Config1.modifyBindings { module =>
        module.bind[Resource1] toSingle new Resource1("name2")
        val rc2 = new ResourceClient //not sure if rc can be used here
        assert(rc2.res1.name == "name2") //FAILS
    }
}
}

关于我错过的任何想法?

如果您制作

    Config1.modifyBindings { module =>

进入

    Config1.modifyBindings { implicit module =>

是否可以修复?

最新更新