Saya mencoba meniru metode emit dari io tetapi saya tidak tahu cara mengejeknya. Ini adalah file Join.jsx
saya
//Join.jsx
import React from 'react';
import io from 'socket.io-client';
const Join = () => {
let socket;
const ENDPOINT = 'localhost:5000';
const join = () => {
socket = io(ENDPOINT);
socket.emit('join', { name: 'Paola', room: '1' }, () => { });
};
return (
<div className="join-container">
<a className="join-button" onClick={join}>Sign in</a>
</div>
);
};
export default Join;
Ini adalah satu hal yang telah saya coba
//Join.test.jsx
import React from 'react';
import { shallow } from 'enzyme';
import io from 'socket.io-client';
import Join from './Join';
describe(('Join') => {
it(('joins a chat') => {
jest.mock('socket.io-client', () => {
return jest.fn(() => ({
emit: jest.fn(),
}));
});
const ENDPOINT = 'localhost:5000';
const mockSocket = io(ENDPOINT);
const joinWrapper = shallow(<Join />);
joinWrapper.find('a').simulate('click');
expect(mockSocket.emit).toHaveBeenCalledWith('join', { name: 'Paola', room: '1' }, () => { });
})
})
Ini adalah kesalahan yang saya dapatkan di terminal
expect(received).toHaveBeenCalledWith(...expected)
Matcher error: received value must be a mock or spy function
Received has type: function
Received has value: [Function anonymous]
52 | const joinWrapper = shallow(<Join />);
53 | joinWrapper.find('a').simulate('click');
> 54 | expect(mockSocket.emit).toHaveBeenCalledWith('join', { name: 'Paola', room: '1' }, () => { });
| ^
55 | });
56 | });
57 |
Tolong jangan kasar dengan jawaban Anda, saya baru dalam pengujian dan saya benar-benar tersesat. Terima kasih sebelumnya atas tanggapan Anda!!
jest.mock
dalam cakupan tempat Anda mengimpor perpustakaan, yaitu sebelum blok deskripsikan - person Teneff   schedule 27.08.2020