根据文档,为了对 Controller 进行单元测试,我需要使我的 Controller 成为一个特征,然后重写方法
http://www.playframework.com/documentation/2.2.0/ScalaTest
但是,如果我重写我的方法,我实际上并没有测试我的逻辑。我可能没有掌握一些东西,但我不明白这个单元如何测试我的 Controller 的方法?
最佳答案
您提供的链接中的示例的问题在于,它并没有真正显示在特征中实现 Controller 的好处。换句话说,无需使用特征,只需直接测试 Controller 伴随对象即可完成相同的示例。
将 Controller 逻辑置于特征中的好处是,它允许您覆盖 Controller 可能具有模拟实现/值的依赖关系。
例如,您可以将 Controller 定义为:
trait MyController extends Controller {
lazy val someService : SomeService = SomeServiceImpl
}
object MyController extends MyController
在您的测试中,您可以覆盖服务依赖项:
val controller = new MyController {
override lazy val someService = mockService
}
关于unit-testing - 框架如何发挥单元测试 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20684864/