Ich versuche, einen Socketcluster-Client zu stubben, um Ereignisse an den Socketserver zu emittieren.Stubbing ein Socket-Client mit Sinon
i halten die unten Fehler von Sinon bekommen
TypeError: socket.emit is not a function
das ist meine Testsuite
import {expect} from 'chai';
import sinon from 'sinon'
import io from 'socketcluster-client';
import testServer from '../../server/server.js';
describe('httpServer',() => {
beforeEach(() => {
testServer(4000)
})
it('should respond to the ping event',() => {
var socket =sinon.stub(io,'connect')
var message = 'house'
socket.emit('ping',message);
})
})
die Verbindungsfunktion muss in der Regel mit einem Argumente Spezifizierungs aufgerufen werden der Port io.connect ({Anschluss: 4000})
h wie störe ich das mit sinon?
ich würde idealerweise Veranstaltungen wie vom Stummel auszusenden meine Server-Antwort
etwas ähnliches? http://pastebin.com/iym6Fe2v - ich bin mir nicht sicher, ob ich tatsächlich tdd auf dem richtigen Weg bin. Ist das der richtige Weg, einen Socket-Server zu testen, indem man einen Socket-Client stößt/ausspioniert? – Kannaj
Fangen wir am Anfang an: Was genau wollen Sie testen? :-D Spies/Stubs sind dazu gedacht, bestehende Funktionen/Methoden zu "haken", um zu sehen, ob sie mit bestimmten Argumenten aufgerufen werden oder dass Aufrufer dieser Funktionen/Methoden auf bestimmte Bedingungen richtig reagieren. – robertklep
Ich möchte ein "Ping" -Ereignis vom Client aus senden und prüfen, ob der Server korrekt auf das Ereignis 'ping' reagiert (gib 'pong' zurück, oder erre abhängig von der Nutzlast). Der Grund, warum ich stub/spy verwenden wollte, bestand darin, nur die Serverantwort und nicht den Client zu testen. – Kannaj