Как установить различную макетную реализацию для каждого тестового примера?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как установить различную макетную реализацию для каждого тестового примера?

Сообщение Anonymous »

Я перемещаюсь с шутки в визит и изо всех сил пытаюсь обеспечить различное макетное значение в каждом тестовом примере. < /p>
Основной пример: < /p>

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

// test.ts

import { a } from './asd';

const { f } = vi.hoisted(() => {
return {
f: vi.fn(),
};
});

vi.mock('../../../api/ApiProvider', () => ({
f,
}));

describe('Test', () => {
it('sample test case', () => {

f.mockReturnValue(42);
expect(a).toEqual(1);
});

it('sample test case2', () => {

f.mockReturnValue(43);
expect(a).toEqual(1);
});
});
< /code>
// asd.ts

import { f } from '../../../api/ApiProvider';
console.log('IMPORTING API PROVIDER', f());
export const a = 1;
< /code>
The issue seems to stem from the fact that when the ApiProvider module is imported, it is cached and uses the initial mocking implementation of vi.mock which is an empty mock function, hence why IMPORTING API PROVIDER returns undefined. The f.mockReturnValue()
вызовы, кажется, игнорируются. Я могу предоставить реализацию по умолчанию в макете, но что, если я хочу изменить это в другом тестовом примере? Есть ли способ отключить кэширование модуля или я делаю что -то не так?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -test-case
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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