2016-11-01 14 views
0

Я пытаюсь проверить действия своего приложения с помощью Jest. Я посмотрел сайт тестирования @ redux.js.org и другие сообщения в форумах, но я не понимаю, почему я получаю ошибку. Я думаю, что я не понимаю, как насмехается работа.Jest - testing redux actions

Мои действия в index.js:

export const setResponse = (res) => { 
    return { 
     type: 'RESPONSE_RECEIVED', 
     payload: res 
    } 
}; 

Мой тест actions.test.js:

import * as actions from '../src/client/scripts/actions/index' 

describe('actions',() => { 
    it('should create an action to receive a response',() => { 
    const payload = {response: 'solr_json'}; 
    const expectedAction = { 
     type: 'RESPONSE_RECEIVED', 
     payload 
    } 
    expect(actions.setResponse(payload)).toEqual(expectedAction) 
    }) 
}); 

я получил ошибку 'Прогнозный не определено равным Object ...' Soi подумал actions.setResponse не существует, поэтому я распечатал actions.setResponse и это выглядит следующим образом:

{ [Function: setResponse] 
    _isMockFunction: true, 
    getMockImplementation: [Function], 
    mock: { calls: [], instances: [] }, 
    mockClear: [Function], 
    mockReturnValueOnce: [Function], 
    mockReturnValue: [Function], 
    mockImplementationOnce: [Function], 
    mockImpl: [Function], 
    mockImplementation: [Function], 
    mockReturnThis: [Function] } 

так кажется Functio n есть, как я на самом деле вызываю функцию внутри теста Jest? Даже если я изменю

export const setResponse = (res) => 

в

export function setResponse(res) 

(так это же формат redux.js.org учебника) я получаю ту же ошибку. Для справки это шуткой часть моего package.json:

"jest": { 
    "scriptPreprocessor": "node_modules/babel-jest", 
    "testFileExtensions": [ 
     ".test.js" 
    ], 
    "testPathDirs": [ 
     "__tests__" 
    ], 
    "moduleFileExtensions": [ 
     "js" 
    ], 
    "unmockedModulePathPatterns": [ 
     "node_modules/react", 
     "node_modules/react-addons-test-utils", 
     "node_modules/react-dom" 
    ] 
    } 

Спасибо за любую помощь

ответ

1

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

Массив регулярных выражений строк шаблонов, которые подбираются против всех модулей до модуля загрузчик автоматически возвращает издеваться для их. Если путь модуля соответствует любому из шаблонов в этом списке, то будет не автоматически высмеивается загрузчиком модуля.

Я бы предположил, что если вы удалите эту строку, модуль не будет автоматически высмеиваться. Обычно его легче высмеивать материал, который вы хотите высмеять прямо в своем тесте, используя jest.mock. Или вы добавляете исходную папку в список unmockedModulePathPatterns.

+0

Я пробовал оба из них, и он все еще издевается :( – Jayce444

+1

Какая версия Jest вы используете? Это мои настройки, и у меня никогда не было ничего издевательства автоматически: '" jest ": {" testRegex ":" ./ test /.*/.* \\. spec \\. js $ "," rootDir ":". "}' –

+0

Я использую v13.2.3, еще одна странная вещь, даже если я просто запускаю ее нормально, она действует например, я запускаю его в режиме «смотреть», т. е. он запускает тесты только тогда, когда я что-то делаю, например, перемещаю файл или редактирую файл или что-то еще:/ – Jayce444

 Смежные вопросы

  • Нет связанных вопросов^_^