使用 Web Component 测试器调用存根、替换和夹具需要什么顺序

What order to you need to call stub, replace and fixture with Web Component tester

我开始为我的应用程序中的某些元素构建测试套件。在顶层,我有一个 <my-app> 元素,在其模板中,它使用 <my-session 元素来控制用户登录,并使用 <iron-media-query> 元素来定义字符串在应用程序中使用的长度 header.

为了更好地控制这两者的行为,正在构建它们的特殊测试版本并使用 replace('my-session').with('test-session') 方法来改变它们。我还将使用 stub 函数来控制与测试套件的交互。

我已经完整阅读了 polymer 网站上的文档,但我无法确定您是否必须在调用 fixture 之前或之后使用 replacestub

有人可以指教

我终于找到了答案

两者都必须在夹具实例化之前调用。原因是存根改变了原型元素(即在它被创建之后但在它被标记到 dom 之前,所以它需要在 fixture 之前完成)。

replace 函数实际上是在映射中添加了一个条目,以便在 fixture 被实例化时使用。所以再次需要在夹具调用之前调用它。

截至今天,最新版本的 web-components-tester 不包含允许它在高度嵌套的元素上工作的修复程序(例如,我试图测试我的应用程序级元素和应用程序-当使用替换时,app-header-layout 中的工具栏没有被展开)但修复在 master 中。作为临时措施,我将 browser.js 的主版本复制到 bower_componenents/web-component-tester 目录中正在使用的副本中。

我认为在一些非常复杂的布局中仍然存在错误。我有一个 paper-toast,其内容中有一个 dom-if 模板,我试图用测试版本替换它作为模拟,它的模板中也有标签。这没有用