使用TestBed进行Angular2结构指令测试

时间:2017-10-20 07:54:24

标签: angular testing angular2-directives testbed

我们在Angular 2中实现了一个结构指令,仅显示具有特定角色的用户的内容。在生产系统中,一切正常。

ProjectReference

当我们使用TestBed实施一些测试时,出现了问题。 如果我们使用角色作为仅包含字母和数字的输入(例如APP1role1),一切正常。如果我们使用冒号角色等。 (例如APP1:role1)我们得到一个错误:

模板解析错误:         TypeError:无法读取未定义的属性'toUpperCase'

以下是测试结构指令的规范组件:

vcxproj

我很确定角色输入中的':'会导致问题。

有人知道为什么吗?帮助会很棒!

提前致谢

1 个答案:

答案 0 :(得分:0)

以星号*为前缀的结构指令将被评估。您正在传递字符串。

因此,将其替换为以下内容:

*pdHasRole="'` + role + `'"

此外,您使用的是字符串插值字符串,但随后使用常规连接。 您还可以写:

const template = `<div *pdHasRole="'${role}'">Test with role: ${role}</div>`;