标签: angular-scenario

角度场景e2e测试 - 在继续之前等待关键事件完成

人们如何编写涉及触发一系列UI事件的角度e2e测试?场景的异步性质似乎使其变得困难.

详细信息:我正在为一个具有大量密钥处理功能的应用程序编写测试,以帮助加快编辑专用表单的速度.我已将键盘扩展拉到了方案dsl(见下文),但只有测试的第一个关键事件才有效.即

keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual('00:04');
keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual('');  // but equals 00:04
Run Code Online (Sandbox Code Playgroud)

第二个keydown没有做任何事情,因为它没有找到*:focus来将键路由到(尽管屏幕上有一个).混乱.

angular.scenario.dsl('keyboard', function() { 
    var chain  = {}; 
    chain.keydown = function(selector, keyEvent, keyCode, shift, ctrl) { 
        return this.addFutureAction("keyEvent", function($window, $document, done) { 
            var jQuery = $window.$; 
            var e = jQuery.Event(keyEvent);
            e.keyCode = keyCode; // # Some key code value
            e.altKey = false;
            e.ctrlKey = ctrl;
            e.shiftKey = shift;
            if (selector == null) selector = '*:focus';
            var j = …
Run Code Online (Sandbox Code Playgroud)

testing angularjs angular-scenario

31
推荐指数
1
解决办法
1259
查看次数

是否可以将Testacular(Karma)与角度场景混合使用?

Testacular(现在是Karma)非常棒,角度场景也是如此.然而,将它们结合使用证明是一项挑战.在Testacular中有一个ANGULAR-SCENARIO-ADAPTER,但它打破了简单的测试.如果你自己包含angular-scenario.js,那么Testacular根本就不会运行任何测试.有人有这个正常运行?

角情景ADAPTER

我试过用一个微不足道的测试,但我看到了一些奇怪的行为:

测试:

describe('Simple', function(){
    it('should compare strings', function(){
        expect('foo').toBe('foo');
    });
});
Run Code Online (Sandbox Code Playgroud)

配置的正常行为:

files = [
  JASMINE,
  JASMINE_ADAPTER,
//    ANGULAR_SCENARIO,
//    ANGULAR_SCENARIO_ADAPTER,
    'tests/lib/angular/angular.js',

    'tests/sample.js'
];
Run Code Online (Sandbox Code Playgroud)

输出:

$ testacular start
info: Testacular server started at http://localhost:9876/
info (launcher): Starting browser ChromeCanary
info (Chrome 25.0): Connected on socket id KRwEUtKtiaJs3MoiEsNg
Chrome 25.0: Executed 1 of 1 SUCCESS (0.061 secs / 0.003 secs)
Run Code Online (Sandbox Code Playgroud)

添加ANGULAR适配器配置时:

files = [
  JASMINE,
  JASMINE_ADAPTER,
    ANGULAR_SCENARIO,
    ANGULAR_SCENARIO_ADAPTER,
    'tests/lib/angular/angular.js',

    'tests/sample.js'
];
Run Code Online (Sandbox Code Playgroud)

输出是:

$ testacular start
info: Testacular server started …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs angular-scenario karma-runner

9
推荐指数
2
解决办法
5085
查看次数

如何使用带有requirejs的角度场景

当角度应用程序准备就绪时,Angular-scenario可以很好地工作.使用requirejs或其他AMD lib时不是这种情况.如何在角度场景中添加对AMD的支持?

javascript requirejs angularjs angular-scenario

7
推荐指数
1
解决办法
1911
查看次数

Angularjs e2e测试过去/未来的比较

我目前正试图弄清楚是否有办法做一个简单的未来/过去比较前.

1)通过获取列表长度来检查列表状态2)执行如果成功递增列表的动作3)将当前列表长度与过去进行比较.

但期货的概念似乎妨碍了我.人们会认为这是一个非常正常的用例.

问:在Angularjs场景中,您将如何处理过去/未来的比较?

angularjs angular-scenario karma-runner

2
推荐指数
1
解决办法
772
查看次数

如何使用Angular Scenario Runner运行测试套件的子集?

我正在开发一个基于TDD的应用程序.

对于服务器端来说一切都很好,因为Python测试运行器很棒.

对于JS,我开始使用mocha也很棒.

我用Karma和Angular Scenario Runner编写了我的第一个测试,它也很棒.

问题是,在现实生活中开始使用Angular Scenario Runner后不久,我最终进行了60次e2s测试.运行所有测试需要1分钟.

现在,当我写一个新测试时,每次我想检查测试时,我都要等待60秒.

在Mocka中,有一个选项,只能使用.visionly运行特定的测试http://visionmedia.github.io/mocha/#exclusive-tests


看起来像Angular Scenario Runner被简要记录,但不知何故模仿Jasmine.


查看Angular Scenario Runner代码我只能找到xit定义,用于跳过测试.

是否有一个技巧要求Angular Scenario Runner仅运行测试的子集?

我已经实现了一个xdescribe空白方法来跳过整个套件......但从长远来看这是可行的.

非常感谢!

tdd angularjs angular-scenario

2
推荐指数
1
解决办法
637
查看次数

调用自定义DSL时,"框架窗口不可访问"

我抓住了Angular Seed项目并修改了它的场景测试.我正在尝试一个非常简单的测试,所以我相信这是我所缺少的.这是DSL和Scenario规范:

angular.scenario.dsl('customDsl', function() {
  return function(selector) {
    return this.addFutureAction('customDsl', function ($window, $document, done) {
      done(null, selector + ' is ok!');
    });
  };
});

describe('my app', function() {
  it('should pass', function() {
    expect(customDsl('test')).toBe('test is ok!');
  });
});
Run Code Online (Sandbox Code Playgroud)

运行测试时,它失败并显示以下消息:

Frame window is not accessible.
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows 7并在Chrome中运行方案.要运行测试,我启动服务器node scripts\web-server.js,然后scripts\e2e-test.bat.

angularjs angular-scenario

1
推荐指数
1
解决办法
1185
查看次数