Я использую угловой перевод в моем шаблоне директивы, например:Использования перевести фильтр с угловым переводом в Karma/Jasmine тесты
<!-- directive template -->
<button>{{"ers.diagramComponent.resizeOriginalButton" | translate}</button>
Моего JSON, который отображает до этого перевода значения:
{
"ers.diagramComponent.resizeOriginalButton": "Original"
}
первоначально я получаю эту ошибку:
Error: [$injector:unpr] Unknown provider: translateFilterProvider <- translateFilter
Я исправленный, что, добавив:
<!-- This is at the top level, runs before all tests -->
describe("Directive", function() {
beforeEach(angular.mock.module("directive"));
var mockFilter = function (value: any) {
return value;
};
beforeEach(function() {
angular.mock.module(function ($provide:any) {
$provide.value("translateFilter", mockFilter);
});
});
});
Найденный выше здесь: How to mock angular translate filter in unit tests for directives
Я пытаюсь теперь получить, что перевести значение, чтобы соответствовать в моих тестах карма/жасмин. Мой провал тест выглядит примерно так:
var actualSizeHtml = diagramDirective.find("button").html();
expect(actualSizeHtml).toEqual("Original");
Мой провал тест:
Expected 'ers.diagramComponent.resizeOriginalButton' to equal 'Original'.
Поэтому в основном я не могу понять, как перевести «ers.diagramComponent.resizeOriginalButton» так, что он равен «Оригинал », что и требует тест.
Вот мой конфиг для настройки $ translateProvider в компонентах, папка ресурсов держит JSON для моих пар ключ/значение:
angular.module("app",["pascalprecht.translate"]).config(["tmhDynamicLocaleProvider", function(tmhDynamicLocaleProvider) {
$translateProvider.useStaticFilesLoader({
prefix: "resources/locale-",
suffix: ".json"
});
$translateProvider.preferredLanguage("en-us");
$translateProvider.useSanitizeValueStrategy("escape");
}]);
Но что конфигурация не имеет ничего общего с моими тестами.
Я получаю ту же ошибку с этим дополнением. – bschmitty
У вас есть модуль с вашими переводами? Например: [link] (https://github.com/jasper-fu/life_counting_down/blob/552859aeacfd1133a729330068f193adca500e49/app/scripts/translations.js). Если у вас есть, вам нужно также ввести модуль с переводами. Было бы неплохо увидеть вашу структуру приложения, чтобы понять, в чем проблема. –
Я добавил свою конфигурацию выше. Эта конфигурация отделена от моих тестов и вообще не относится к моим тестам. – bschmitty