我在自定义指令模板中使用angular-translate,例如:
htmlAttributes
我的json映射到此翻译值:
@Html.DropDownList("RoleList", null, new { @class = "form-control" })
我最初收到此错误:
<!-- directive template -->
<button>{{"ers.diagramComponent.resizeOriginalButton" | translate}</button>
我通过添加:
更正了这一点{
"ers.diagramComponent.resizeOriginalButton": "Original"
}
在此处找到上述内容:How to mock angular translate filter in unit tests for directives
我现在尝试将该翻译值与我的业力/茉莉花测试相匹配。我失败的测试看起来像这样:
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);
});
});
});
所以基本上我无法弄清楚如何翻译“ers.diagramComponent.resizeOriginalButton”,以便它等于“原始”,这是测试所寻求的。
这是我在组件中设置$ translateProvider的配置,resources文件夹包含我的键/值对的json:
var actualSizeHtml = diagramDirective.find("button").html();
expect(actualSizeHtml).toEqual("Original");
但是这种配置与我的测试无关。
答案 0 :(得分:0)
您的测试似乎一无所知&#34; pascalprecht.translate&#34;模块,包含翻译过滤器。你需要添加&#34; pascalprecht.translate&#34;模块依赖于&#34;指令&#34;模块或做这样的事情:
describe("Directive", function () {
beforeEach(angular.mock.module("directive", "pascalprecht.translate"));
var mockFilter = function (value: any) {
return value;
};
beforeEach(function () {
angular.mock.module(function ($provide:any) {
$provide.value("translateFilter", mockFilter);
});
});
});
另外,你可以写
module("directive", "pascalprecht.translate")
而不是
angular.mock.module("directive", "pascalprecht.translate")