【问题标题】:Ember Simple Auth 1.0 Testing HelpersEmber Simple Auth 1.0 测试助手
【发布时间】:2016-03-17 09:16:17
【问题描述】:

我最近从 0.8 升级到 1.0,并且我的应用运行正常。

有一点让我感到惊讶,但我仍然不明白应该如何使用新的验收测试助手。

以前(0.8)我可以这样写我的测试,他们会通过:

test('sign in and sign out', function(assert) {
  visit('/');

  andThen(function() {
    assert.ok(find(':contains("Sign In")').length,
      'expected to see "Sign In"');
  });

  authenticateSession();

  andThen(function() {
    assert.ok(find(':contains("Sign Out")').length,
      'expected to see "Sign Out"');
  });

  invalidateSession();

  andThen(function() {
    assert.ok(find(':contains("Sign In")').length,
      'expected to see "Sign In"');
  });
});

但是,在升级并以新格式重写后:

import { authenticateSession, invalidateSession } from 'instatube-app/tests/helpers/ember-simple-auth';

test('sign in and sign out', function(assert) {
  visit('/');

  andThen(function() {
    assert.ok(find(':contains("Sign In")').length,
      'expected to see "Sign In"');
  });

  authenticateSession(application);

  andThen(function() {
    assert.ok(find(':contains("Sign Out")').length,
      'expected to see "Sign Out"');
  });

  invalidateSession(application);

  andThen(function() {
    assert.ok(find(':contains("Sign In")').length,
      'expected to see "Sign In"');
  });
});

现在只有第一个断言通过。

如果我将它们分成单独的测试,即:

test('when signed out display sign in button', function(assert) {
  visit('/');

  andThen(function() {
    assert.ok(find(':contains("Sign In")').length,
      'expected to see "Sign In"');
  });

});

test('when signed in display sign out button', function(assert) {
  authenticateSession(application);
  visit('/');

  andThen(function() {
    assert.ok(find(':contains("Sign Out")').length,
      'expected to see "Sign Out"');
  });
});

然后这些单独的测试通过了,但我似乎无法让它们在实际用例中工作。

任何关于为什么会发生这种情况以及如何解决它的想法将不胜感激。

【问题讨论】:

    标签: ember.js ember-simple-auth ember-testing


    【解决方案1】:

    所以万一其他人遇到这个问题,我设法通过在 andThen 服务员中包含助手来解决它,如下所示:

    import { authenticateSession, invalidateSession } from 'instatube-app/tests/helpers/ember-simple-auth';
    
    test('sign in and sign out', function(assert) {
      visit('/');
    
      andThen(function() {
        assert.ok(find(':contains("Sign In")').length,
          'expected to see "Sign In"');
        authenticateSession(application);
      });
    
      andThen(function() {
        assert.ok(find(':contains("Sign Out")').length,
          'expected to see "Sign Out"');
        invalidateSession(application);
      });
    
      andThen(function() {
        assert.ok(find(':contains("Sign In")').length,
          'expected to see "Sign In"');
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多