2016-06-24 7 views
0

Ich versuche, eine Komponente in Mokka zu machen und nicht wirklich wissen, warum ich diesen Fehler: enter image description hereSpy rief nicht auf Aktion

Wer weiß, warum dies geschieht? Ich übergebe Requisiten manuell, da Enzyme die Verbindung() nicht gut genug abdecken, wenn sie ihren eigenen Behälter mit sich selbst umhüllen.

import chai from 'chai' 
import React from 'react' 
import { shallow, props } from 'enzyme' 
import sinon from 'sinon' 
import PureTestNest from '../../components/CounterNest' 
import thunk from 'redux-thunk'; 
import configureStore from 'redux-mock-store' 
import sinonChai from 'sinon-chai' 


const expect = chai.expect; 
chai.use(sinonChai); 


function setup(value = 0) { 
    const component = shallow(
    <PureTestNest value={value} doIncreaseNumber={doIncreaseNumber} store={store} /> 
) 
    let doIncreaseNumber = sinon.spy() 

    return { 
    component: component, 
    doIncreaseNumber, 
    buttons: component.find('button') 
    } 
} 

const middlewares = [thunk] 
let mockStore = configureStore(middlewares) 
let component; 
const getState = {} 
const store = mockStore(getState) 

describe('Components --CounterNest',() => { 

    it('should increment an value on a click',() => { 
    const { buttons, doIncreaseNumber } = setup() 
    buttons.at(0).simulate('click') 
    expect(doIncreaseNumber).to.have.been.called() 
    }); 

}); 
+0

Wenn angeschlossenen Komponenten zu testen, [die redux docs empfehlen] (http://redux.js.org/docs/recipes/WritingTests.html#connected -components) testet nicht die verbundene Komponente, sondern die Komponente, die Sie verbinden (bevor sie verbunden ist). Dies erfordert, dass Sie die Komponente auch exportieren (als benannter Export), aber das ist in Ordnung für diesen Fall, denke ich. – kentcdodds

+0

Ja, ich exportiere die Komponente zuerst vor dem Verbinden, also sollte es darauf basierend funktionieren. –

Antwort

1

Erstellen Sie den Spion, bevor Sie ihn in Ihrer Komponente verwenden?

function setup(value = 0) { 
    let doIncreaseNumber = sinon.spy() 

    const component = shallow(
    <PureTestNest value={value} doIncreaseNumber={doIncreaseNumber} store={store} /> 
) 

    return { 
    component: component, 
    doIncreaseNumber, 
    buttons: component.find('button') 
    } 
} 

Im nicht vertraut mit Mokka (Jasmin Benutzer)

+0

Nein, funktioniert nicht: / –

Verwandte Themen