2016-06-06 1 views
0

Je suis en train de travailler sur le tutoriel here et de trouver que presque tous les tests de chai les plus élémentaires échouent pour moi. Voici l'exemple actuel pour un testLes tests immuables Chai/Mocha échouent systématiquement

import {List, Map} from 'immutable'; 
import {expect} from 'chai'; 

import {setEntries} from '../src/core'; 

describe('application logic',() => { 
    describe('setEntries',() => { 
     it('adds the entries to the state',() => { 
      const state = Map(); 
      const entries = List.of('Trainspotting', '28 Days Later'); 
      const nextState = setEntries(state, entries); 
      expect(nextState).to.equal(Map({ 
       entries: List.of('Trainspotting', '28 Days Later') 
      })); 
     }); 
    }); 
}); 

défaut et voici le test de code contre:

import {List} from 'immutable'; 

export function setEntries(state, entries){ 
    return state.set('entries', entries); 
} 

ici est le message d'erreur de l'échec:

1) application logic setEntries adds the entries to the state: 

     AssertionError: expected { Object (size, _root, ...) } to equal { Object (size, _root, ...) } 
     + expected - actual 

       "size": 2 
       } 
      ] 
      ] 
     - "ownerID": [undefined] 
     + "ownerID": {} 
     } 
     "size": 1 
     } 

je peux » Il semble que vous trouviez une documentation significative sur ce que cette erreur signifie, et vous ne voyez aucun autre utilisateur de ce tutoriel mentionnant des problèmes similaires. Une idée où ça étouffe?

Répondre

2

Vous ne pouvez pas utiliser les contrôles d'égalité réguliers sur les objets non modifiables. Au lieu de cela, utiliser quelque chose comme Immutable.is():

import Immutable, {List, Map} from 'immutable'; 

... 

expect(
    Immutable.is(nextState, Map({ 
    entries: List.of('Trainspotting', '28 Days Later') 
    })) 
).to.be.true; 

Ou mieux encore, utilisez chai-immutable:

import chai, {expect} from 'chai'; 
import chaiImmutable from 'chai-immutable'; 

chai.use(chaiImmutable); 

Avec ce dernier, cas de test, peut rester le même.

0

Vous devez ajouter les codes ci-dessous au début de votre fichier.

import chai from 'chai'; 
import chaiImmutable from 'chai-immutable'; 

chai.use(chaiImmutable);