2016-05-31 5 views
1

Я работаю, перенося кучу модульных тестов из погремушки в шутку. Когда я шучу модуль, который требует нового реликтовый агента, как так: require('newrelic'), я получаю вниз по течению ошибки как:Как правильно протестировать модуль, который требует newrelic со шуткой

- TypeError: Cannot convert undefined or null to object 
    at Object.<anonymous> (node_modules/newrelic/lib/config.js:165:33) 
    at Runtime._execModule (node_modules/jest-cli/src/Runtime/Runtime.js:261:17) 
    at Object.<anonymous> (node_modules/newrelic/lib/logger.js:18:14) 
    at Object.<anonymous> (node_modules/newrelic/index.js:3:14) 

Что является лучшим способом борьбы с модулями как newrelic которые Шутка имеет трудное время насмешливыми? Что сделали другие люди, когда у них есть как шутка, так и новый реликвий в их стеке?

ответ

1

Маршрут я в конечном итоге принимает было создать макет модуля для NewRelic в моей __mocks__ папке:

module.exports = { 
    addCustomParameter: jest.fn() 
}; 

Я, вероятно, нужно будет добавить больше функций позже, но пока этого достаточно. Я по-прежнему задаюсь вопросом, есть ли способ получить шутку, чтобы автоматически издеваться над новой библиотекой без ошибок.

0

Я видел это с несколькими модулями, когда автомодуляция терпит неудачу по разным причинам, хотя, похоже, это происходит гораздо реже в более новых версиях Jest.

Как @linuxdan предлагает вам решить эту проблему, используя ручную насмешливую функциональность, зарегистрированную here.

Для этого вы, вероятно, захотите просто экспортировать объект с помощью ожидаемых методов, сгенерированных с помощью jest.fn().

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