2015-02-24 11 views
5

Dường như phương pháp kiểm tra Qunit không khả dụng mặc dù tôi khá chắc chắn rằng tôi đang nhập chính xác.'bình đẳng' không được xác định: Ember-qunit dường như không nhập

tôi nhận được các lỗi sau đây:

unit/models/friend-test.js: line 11, col 3, 'ok' is not defined. 
unit/models/friend-test.js: line 17, col 3, 'equal' is not defined. 
unit/models/friend-test.js: line 23, col 3, 'equal' is not defined. 
unit/models/friend-test.js: line 31, col 3, 'equal' is not defined. 
unit/models/friend-test.js: line 32, col 3, 'equal' is not defined. 

Tôi có tập tin này kiểm tra unit/models/friend-test:

import Ember from 'ember'; 
import { moduleForModel, test } from 'ember-qunit'; 


moduleForModel('friend', 'Friend', { 
    needs: ['model:article'] 
}); 

test('it exists', function() { 
    var model = this.subject(); 
    ok(model); 
}); 

test('fullName concats first and last name', function() { 
    var model = this.subject({firstName: 'Syd', lastName: 'Barrett'}); 

    equal(model.get('fullName'), 'Syd Barrett'); 

    Ember.run(function() { 
    model.set('firstName', 'Geddy'); 
    }); 

    equal(model.get('fullName'), 'Geddy Barrett', 'Updates fullName'); 
}); 

test('articles relationship', function() { 
    var klass = this.subject({}).constructor; 

    var relationship = Ember.get(klass, 'relationshipsByName').get('articles'); 

    equal(relationship.key, 'articles'); 
    equal(relationship.kind, 'hasMany'); 
}); 

Tôi đang làm việc thông qua "Ember CLI 101"

+0

Có vẻ như nó phải là 'test.ok',' test.equal', v.v. nhưng tôi đoán từ nguyên tắc đầu tiên vì tôi không quen với Ember (và qunit). – Pointy

+0

@Pointy Tiền tố với 'test' đã xóa các lỗi. Cảm ơn. Mã ví dụ không bao gồm các tiền tố này, tuy nhiên, tôi tò mò làm thế nào họ có thể bỏ qua chúng. Cảm ơn bạn, mặc dù, ít nhất tôi có thể tiến hành. –

+0

Trên thực tế, mặc dù các lỗi được đề cập ở trên rõ ràng sau khi tiền tố gọi phương thức với 'test', kiểm tra vẫn không thành công, mặc dù có một thông báo khác:' ember_qunit.test.ok không phải là hàm' –

Trả lời

10

Tác giả ở đây! Xin lỗi về nó, tôi thực sự cần phải cập nhật mã kể từ ngày phát hành mới nhất cú pháp cho các bài kiểm tra thay đổi để phù hợp với phiên bản sắp tới của QUNit.

Bây giờ sử dụng: equal, ok và khẳng định các QUnit khác, chúng ta phải làm điều đó thông qua một param gọi là khẳng định trong hàm callback thông qua để kiểm tra: test('foo', function(assert){ assert.ok(true) }. Tôi sẽ gửi bản cập nhật sách tối nay để khắc phục điều này :), trong thời gian chờ đợi, những điều sau đây sẽ hoạt động:

import Ember from 'ember'; 
import { moduleForModel, test } from 'ember-qunit'; 


moduleForModel('friend', 'Friend', { 
    needs: ['model:article'] 
}); 

test('it exists', function(assert) { 
    var model = this.subject(); 
    assert.ok(model); 
}); 

test('fullName concats first and last name', function(assert) { 
    var model = this.subject({firstName: 'Syd', lastName: 'Barrett'}); 

    equal(model.get('fullName'), 'Syd Barrett'); 

    Ember.run(function(assert) { 
    model.set('firstName', 'Geddy'); 
    }); 

    assert.equal(model.get('fullName'), 'Geddy Barrett', 'Updates fullName'); 
}); 

test('articles relationship', function(assert) { 
    var klass = this.subject({}).constructor; 

    var relationship = Ember.get(klass, 'relationshipsByName').get('articles'); 

    assert.equal(relationship.key, 'articles'); 
    assert.equal(relationship.kind, 'hasMany'); 
}); 
0

Look trong các thử nghiệm/người giúp đỡ/start -app.js. Bạn sẽ thấy một cái gì đó như:

Ember.run(function() { 
    registerAcceptanceTestHelpers(); 
    application = Application.create(attributes); 
    application.setupForTesting(); 
    application.injectTestHelpers(); 
    }); 

Điều này sẽ đưa những người trợ giúp thử nghiệm vào phạm vi toàn cầu của ứng dụng.

+0

Tất cả các chức năng đó đều có ngoại lệ là 'registerAcceptanceTestHelpers()', xuất hiện dưới dạng 'undefined' –

+0

Đó là từ một trong các tiện ích bổ sung ember-cli. Bạn không cần cái đó. –

Các vấn đề liên quan