Шутка макета синглтонаJavascript

Форум по Javascript
Ответить
Anonymous
 Шутка макета синглтона

Сообщение Anonymous »

Код: Выделить всё

service.js
Этот файл определяет класс службы с конструктором, который инициализирует свойство значения и метод GetValue, который возвращает это значение. Файл экспортирует экземпляр класса службы.

Код: Выделить всё

class Service {
constructor() {
this.value = 'A';
}
getValue() {
return this.value;
}
}

export default new Service();
< /code>
main.js
Этот файл импортирует службу и определяет функцию выполнения, которая регистрирует сообщение со значением, полученным из Сервиса.

Код: Выделить всё

import service from './service';

export function run() {
const value = service.getValue();
console.log('Executing service with value ' + value);
}
< /code>
main.test.js

import { jest } from '@jest/globals';
import { run } from './main';

jest.mock('./service', () => {
return {
__esModule: true,
default: {
getValue: jest.fn().mockReturnValue('mocked_value'),
},
};
});

describe('test run', () => {
it('should log the correct message', () => {
console.log = jest.fn();
run();
expect(console.log).toHaveBeenCalledWith('Executing service with value mocked_value');
});
});
< /code>
What happens?
Expected: "Executing service with value mocked_value"
Received: "Executing service with value A"
< /code>
Can anyone help getting the mock work? Thanks.

Подробнее здесь: https://stackoverflow.com/questions/794 ... n-instance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»