Как имитировать зависимости в тестах Intern

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


person Andreas Köberle    schedule 01.05.2013    source источник


Ответы (2)


Intern использует загрузчик AMD Dojo Toolkit. Чтобы смоделировать зависимости, вы должны просто использовать стандартную функцию AMD map. В вашем файле конфигурации Intern что-то вроде этого должно делать то, что вам нужно:

define({
  …,
  loader: {
    map: {
      myPackage: {
        'myPackage/foo': 'myPackage/mocks/foo',
        'herp': 'myPackage/mocks/herp',
        'derp': 'myPackage/mocks/derp'
      }
    }
  }
});

См. https://github.com/amdjs/amdjs-api/wiki/Common-Config#map- для получения дополнительной информации о map.

person C Snover    schedule 01.05.2013
comment
Как бы я тогда издевался над тестом? Я не знаком с реализацией Dojos AMD, поэтому можно ли создать собственный контекст для каждого теста, как описано в SO, который я упомянул в своем вопросе? - person Andreas Köberle; 02.05.2013
comment
В настоящее время загрузчик Dojo не поддерживает точно такие же вещи, как RequireJS, в отношении создания require с независимыми конфигурациями. Это функция, которую я хотел бы добавить, чтобы лучше поддерживать этот вариант использования. Вы можете сделать что-то подобное сегодня, объединив функцию undef с map, но это не так изящно, поэтому я бы не рекомендовал делать это напрямую. Тем временем вы сможете просто заменить загрузку dojo/dojo.js на require.jsclient.html, client.js и runner.js), и все должно работать. Пожалуйста, введите запрос функции. - person C Snover; 02.05.2013
comment
Intern 1.5 будет включать в себя require.undef API, поэтому вы можете удалить модули из кеша, если вам нужно изменить конфигурацию, чтобы имитировать зависимость AMD для теста. - person C Snover; 25.02.2014