2015-02-24 8 views
5

Sembra che i metodi di test di Qunit non siano disponibili anche se sono abbastanza sicuro che li sto importando correttamente.'equal' non è definito: Ember-qunit non sembra importare

ottengo i seguenti errori:

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. 

Ho questo file di test 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'); 
}); 

sto lavorando attraverso "Ember CLI 101"

+0

Sembra che avrebbe dovuto essere 'test.ok',' test.equal', ecc , ma sto solo indovinando dai primi principi perché non ho familiarità con Ember (e qunit). – Pointy

+0

@Pointy Il prefisso con 'test' ha cancellato gli errori. Grazie. Il codice di esempio non include questi prefissi, tuttavia, sono curioso di sapere come potrebbero ometterli. Grazie, però, almeno posso procedere. –

+0

In realtà, anche se gli errori sopra menzionati si cancellano dopo aver preceduto il metodo chiamate con 'test', il test fallisce, anche se con un messaggio diverso:' ember_qunit.test.ok non è una funzione ' –

risposta

10

Autore qui! Scusa, ho effettivamente bisogno di aggiornare il codice poiché nell'ultima versione la sintassi per i test è stata modificata per corrispondere alla versione imminente di QUNit.

Ora per utilizzare: equal, ok e affermazioni dell'altro QUnit, dobbiamo farlo attraverso un parametro chiamato assert nella funzione di callback passato alla prova: test('foo', function(assert){ assert.ok(true) }. Ti mando un aggiornamento del libro stasera per risolvere questo :), nel frattempo, il seguente dovrebbe funzionare:

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

Cerca in test/aiutanti/inizio -app.js. Dovresti vedere qualcosa del tipo:

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

Inietta gli helper del test nell'ambito globale dell'applicazione.

+0

Tutte queste funzioni sono presenti con l'eccezione di 'registerAcceptanceTestHelpers()', che viene visualizzato come 'undefined' –

+0

Vale a dire da uno dei componenti aggiuntivi di ember-cli. Non hai bisogno di quello. –