我如何做自动化烬测试与戴立克(设置/拆除特定烬组件)

How do I do Automating Ember testing with Dalek (setup/teardown of specific Ember components)

本文关键字:设置 组件 何做 自动化 测试 戴立克      更新时间:2023-09-26

我的TLDR;我的问题版本是"是否有一种方法可以与qunit集成,以便Dalek可以在需要时获得正确的上下文,或者相反,我可以让Dalek运行setup/teardown资产管道编译的Ember javascript来构建一个上下文,以便在其上运行测试?"

首先戴立克看起来棒极了!目前我所有的测试都是用单位写的。我在Ember中构建的组件的自动化测试中遇到了一些问题。该组件是一种所见即所得的文本区域。

(顺便说一句,我的qunit测试是从rails应用程序中的路由驱动的。)

为了自动化测试,我的qunit脚本有一个setup和tearDown,每次都创建一个原始的文本区域。每个测试在textarea中创建一些内容,然后以某种方式与它交互,对其进行一些断言。

这一切都很好,除了我需要比qunit能提供给我的更好的浏览器模拟(我真的没有耐心编写我自己的范围相关的浏览器响应模拟代码)。

我最需要做的事情是:1. 使用方向键移动插入符号,然后键入字符。2. 单击文本区域中的特定点(不是x、y协同词,而是文本中的特定点)。

它打击了我,Dalek可以完全帮助这一点,但我做这个工作流程的方式,我认为我要么需要Dalek是远程控制通过我的qunit测试,或者以某种方式重写我的测试在Dalek,但要做到这一点,我需要能够让Dalek使用jQuery和Ember创建组件和数据上下文的设置/拆除,我甚至不确定Dalek支持。

我真正需要的是部分集成,部分单元测试,而在JS/Rails/Ember测试空间中似乎没有一个很好的答案来处理这组条件。

我担心DalekJS不是你现在需要的工具,即使它是"我的小工具",我建议使用Karma(以前称为Testacular) -它最初是为了测试AngularJS应用程序而开发的:http://karma-runner.github.io/0.12/index.html

你可以和Protractor https://github.com/angular/protractor一起使用它依赖于selenium,但是设置起来相当容易(与其他一些工具相比)。

还有一个关于如何与Ember结合使用的手册:http://karma-runner.github.io/0.10/plus/emberjs.html