unit-testing - 框架如何发挥单元测试 Controller 方法

标签 unit-testing scala playframework-2.0

根据文档,为了对 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/

相关文章:

c# - 在 Unity3d 的 Unity Test Runner 中的单元测试期间加载文件

c# - 进行 WCF 服务调用的单元测试方法?

c - 基本单元测试和 C,我如何开始?

scala - 如何使用vararg case类执行模式匹配?

android - 无法在仪器测试中模拟静态方法

scala - 将插槽与scalajs一起使用

scala - 如何在 Scala mutable.Seq 上追加或前置

lambda - 使用CompletionStage返回结果

multithreading - 当向服务器添加更多资源时,Play Framework会进行线程池扩展吗

java - 如何在 Play Framework 2.0 中创建自定义 validator ?