我正在尝试使用guice作为基于testng的测试框架。这个框架分析测试类的依赖性,并提供它们,从而消除了在测试中构建它们的需要。
Guice完全是关于注入的,我认为它非常适合框架。但问题是,在创建注入器之后,如何定义绑定?这是必需的,因为测试可能重写绑定,以用模拟替换默认实现。
除此之外,在某些情况下,我想根据类名约定猜测运行时的实现。听起来像是在类型绑定功能中。但我如何提供自己的实时绑定提供者呢?
这种动态行为不是开箱即用的支持,但是您可以通过模块重写实现很多功能。看一看 Guiceberry 它已经实现了对JUnit测试的模拟替换。(考虑向他们提交一个测试补丁,他们会喜欢的!)