scala – 模拟对象在游戏中[2.0]
发布时间:2020-12-16 09:02:35 所属栏目:安全 来源:网络整理
导读:我想通过在测试期间提供模拟对象来测试我的Play应用程序.在我的脑海中,有几种方法可以解决这个问题. 在测试期间提供备用路径文件 使用依赖注入,并在运行时检查全局值 我不确定哪个更可行,或者如何去做.任何见解将不胜感激. 解决方法 还有第三种方式;将控制器
我想通过在测试期间提供模拟对象来测试我的Play应用程序.在我的脑海中,有几种方法可以解决这个问题.
>在测试期间提供备用路径文件 我不确定哪个更可行,或者如何去做.任何见解将不胜感激. 解决方法
还有第三种方式;将控制器创建为用于测试的类或特征.这是一个简单的例子.
你的特质实施: package services trait MyService { def getUser(id:String):User } class ConcreteService extends MyService { override def getUser(id:String):User = { //Do real stuff } } 在您的控制器类中: package controllers import services._ class Users(service: MyService) extends Controller { def show(id: String) = Action { val user = service.getUser(id) Ok(views.html.user(user)) } } object Users extends controllers.Users(new ConcreteService()) {} 现在你可以运行一些单元测试.. package test import controllers.Users import play.api.test._ import play.api.test.Helpers._ import org.specs2.mock.Mockito import org.specs2.mutable.Specification class UsersSpec extends Specification with Mockito { val service = mock[MyService] "Users controller" should { "list users" in { //Insert mocking stuff here val users = new Users(service) val result = users.show("somerandomid")(FakeRequest()) status(result) must equalTo(OK) } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 如何访问Angular指令中的dom元素
- angularjs – 重复Angular中的转换 – 访问当前项目的最佳实
- scala读取项目中的文件
- angularjs – 如何删除Angular控制器外的Cordova特定事件?
- angularjs – Mocking $httpBackend – 如何处理“意外请求
- 关于vim复制剪贴粘贴命令的总结-转
- 如何在记事本6.5.5上将unix / bash设置为默认语言
- shell – 更改文件名后缀(使用sed?)
- Angular开发者指南(一)入门介绍
- angular2-routing – 当JWT令牌到期时,Angular2将用户重定向