构建我的Play框架应用程序是可测试的

时间:2016-02-22 10:22:50

标签: playframework playframework-2.0 slick-3.0

对于数据驱动的应用程序,我已经在光滑的游戏框架上提炼了一些知识。我已经按照激活器教程' getting start on the right foot with slick'进行了操作。

这使我进入了继承DB特征的设计模式。很有用,因为现在可以通过在内存DB中稍微旋转来轻松测试控制器。可以说我有两个控制器;

trait PerilQueryTrait extends Controller {  this: DBComponent => import driver.api._

trait RegionTrait extends Controller { this: DBComponent => import driver.api._

trait DBComponent {

  val driver: JdbcProfile

  import driver.api._

  val db: Database
}

' prod' app使用持久数据库实例化控制器的版本。测试应用程序有一个H2 DB。然后每个控制器都有一个“验证”功能。方法,检查提供的参数是否对数据库中的数据有效。刺

class PerilQuery extends PerilQueryTrait with AConcreteDBComponent
class RegionQuery extends RegionTrait with AConcreteDBComponent

并测试

class PerilQuery extends PerilQueryTrait with AnH2DBComponent
class RegionQuery extends RegionTrait with AnH2DBComponent

我想要一个组成两种验证方法的第三个控制器......

能够编写控制器方法的推荐策略是什么?它仍然可以测试? 我最初的想法只是在第三个实例化两个控制器,并分别调用方法。他们是无国籍的,所以这样可行,但我认为它很容易测试,因为我认为在编译时需要知道的代码是否是它的产品或测试。

有这两个特征的第三个特征吗?

trait CombinedTrait with PerilQueryTrait with RegionTrait { this: DBComponent => import driver.api._

依赖注入?

第四种策略?

1 个答案:

答案 0 :(得分:0)

我想我的答案就在这里......哎呀。

https://www.playframework.com/documentation/2.4.4/ScalaActionsComposition

应该仔细阅读。