Mocking Fenster mit Sinon, Mokka -, Enzym-und Reagieren

Ich versuche zu verspotten, aus dem Fenster-Objekt für eine Komponente, die ich verwende, nur mit den vier Bibliotheken, die oben aufgeführt sind.

Ich weiß, es kann getan werden, mit JSDom, aber der Kunde ist gegen die Verwendung von es. Basierend auf meine Forschung zu tun, sinon.stub ("Fenster", "Ort") sollte funktionieren, aber wenn ich mit meinen tests, die ich noch bekommen Fenster undefiniert in meine Komponente.

Derzeit wird die Komponente bezeichnet, innerhalb der render-return {window.Lage.host}

irgendwelche Gedanken, was ich falsch mache um sinon, um auszudrücken, dass ein Stück. Sobald ich die stub das Stück dann kann ich den Fokus auf die Prüfung der anderen Teile der Komponente, die haben nichts zu tun mit Fenster.

Mein Test Methode:

import React from 'react';

import { shallow } from 'enzyme';
import chai from 'chai';
chai.should();
import sinon from 'sinon';

import BillingStatementRow from '../BillingStatementRow';

describe('Test <BillingStatementRow /> Component', function() {

    context('Function Testing', function() {

        it('Test - onFieldChange - Make sure it handles NaN', function() {

            var e = {target: {value: NaN}};

            var window = { location : { host : "..." } };

            var mockedOnChange = sinon.spy();

            const wrapper = shallow (
                <BillingStatementRow slds={''} key={'1'}
                    Id={'1'} inputValue={'0'} salesInvoice={'SIN0001'}
                    invoicedAmount={1000} duedate={'1461628800000'}
                    outstandingBalance={1000} receiptRemaining={1000}
                    amountAllocated={1000} onChange={mockedOnChange.bind(this,'BS0001')} />
            );

            wrapper.instance().onFieldChange('amountAllocated', e);
            wrapper.update();


        })


    });

});
Ich nehme an, Sie haben erklärt window ersten (als ein leeres Objekt oder so etwas)? Auch ist es überall verfügbar (also ist es eine Globale)? EDIT: hmm never mind, window.location ist nicht eine Funktion sowieso, und Sinon kann nur stub-Funktionen. Noch, was genau möchtest du denn testen? Warum nicht einfach deklarieren Sie eine Globale window = { location : { host : "..." } }?
Yep-Fenster ist zuerst deklariert aber es gibt mir immer noch-Fenster ist nicht definiert.
Versuchen global.window = { location : ... } statt.
Vielen Dank - es sieht aus wie es funktionierte.

InformationsquelleAutor DimlyAware | 2016-06-10

Schreibe einen Kommentar