Как высмеивать разные ответы в шутку? - PullRequest
0 голосов
/ 17 октября 2018

в моем тестовом файле:

describe('component', () => {
   globals.Globalfunct = {
    testfunc: jest.fn().mockReturnValue('something)
   }
   it('is a test', () => {

   })
   it('is another test', () => {
     // in here I want testfunc to return something else, how can I do this?
   })
}

Я хочу, чтобы функция jest mock testFunc каждый раз возвращала что-то новое.как я могу это сделать?

Я также не могу заставить mockImplementation работать

1 Ответ

0 голосов
/ 18 октября 2018

Предполагая, что вы хотите, чтобы каждый раз появлялась другая случайная строка ...

describe('component', () => {
   globals.Globalfunct = {
    testfunc: jest.fn().mockReturnValue('foo'),
   }

   beforeEach(() => {
      const randomStr = Math.random().toString(36).substring(7);
      globals.Globalfunct.testfunc = jest.fn().mockReturnValue(randomStr);
   });

   it('is a test', () => {

   })
   it('is another test', () => {
     // in here I want testfunc to return something else, how can I do this?
   })
});

Объяснение

Когда у вас есть функция beforeEach в шутке ( официальные документы ), он будет вызывать его перед каждым тестом.В приведенном выше коде он заменяет макетную функцию на другой экземпляр функции jest перед каждым тестом, давая вам новый, другой ответ на каждый тестовый пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...