2015-07-30 4 views
0

В настоящее время я использую Jest как наш тестовый фреймворк, он отлично выглядит. Однако у нашего JS много вложенных структур. Это выглядит так:Сделать дорожку более элегантной

jest.dontMock('../../../../src/js/component/sum'); 

describe('sum', function() { 
it('adds 1 + 2 to equal 3', function() { 
    var sum = require('../../../../src/js/component/sum'); 
    expect(sum(1, 2)).toBe(3); 
}); 
}); 

В основном, это ссылка на папку источника js. Я пытаюсь использовать <rootDir>. он все еще не работает.

jest.dontMock('<rootDir>/src/js/sum'); 

Могу ли я иметь несколько советов, чтобы реорганизовать эту

EDIT: на всякий случай, чтобы избежать путаницы, некоторые требуют от Node.js не require.js. Шутки и require() используют текущий тестовый путь как корневой путь.

Большое спасибо заранее

+0

requirejs configuration [paths] (http://requirejs.org/docs/api.html#config)? – Vidul

+0

Есть много ответов, например [this] (http://stackoverflow.com/questions/18653492/requirejs-configuration-in-different-file). – Vidul

+0

, к сожалению, требуется, исходя из node.js. Это не требует.js. Я удалю свой комментарий. –

ответ

0

Вы можете использовать систему @providesmodule модуль Facebook, чтобы определить ваш модуль, как в вашем some-file.js файле

/** 
* @providesModule SomeModuleName 
*/ 

export function sum(x, y) { 
    return x + y; 
} 

и использовать его в качестве

jest.dontMock('SomeModuleName'); 
const sum = require('SomeModuleName').sum; 

describe('sum', function() { 
    it('adds 1 + 2 to equal 3', function() { 
    expect(sum(1, 2)).toBe(3); 
    }); 
}); 

более информации here и проверить примеры в Facebook репо

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