问题标签 [web-component-tester]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
329 浏览

polymer-2.x - 聚合物 2 - 槽测试

我正在运行一些测试套件,但问题是测试断言返回负面,因为我似乎无法访问插槽的拉出内容!

基本上是在寻找一些关于时隙内容的聚合物 2 测试实践的资源和指导

任何帮助表示赞赏

0 投票
1 回答
62 浏览

javascript - 将 redux-promise-middleware 与 Web 组件测试器一起使用

我有一个名为redux-scripts

我在顶部导入redux-mixin.html

在 Chrome 和 firefox 中运行起来就像一个魅力,但是当涉及到 web 组件测试器时:

这是指

我通过将其添加到 redux-store.js 的顶部实现了部分解决方法

但这并不是特别令人满意,因为它在运行测试时会导致很多错误,而且并不是所有的测试套件都能运行。

0 投票
1 回答
42 浏览

mocha.js - 为开发或演示重用 Mocha 单元测试代码

我正在使用 Polymer v2 开发web 组件,并使用使用 Mocha的 web-component-tester进行单元测试。

开发的组件是图表/图形,需要显示一些配置(尤其是数据),因此suiteSetup添加样板以正确显示图表。

除了单元测试之外,我如何将这个样板重用于其他用途?有什么标准方法吗?

例如,我想将此代码库用作工作台来处理图表,而无需将其集成到实际应用程序中。我遇到的主要问题是,一旦测试完成,Mocha 就会关闭包含组件的 iFrame。所以我什至看不到它的样子,也无法与之互动。

这个代码库也可以在现有图表的演示库中重用

提前致谢

0 投票
1 回答
235 浏览

polymer - 不能存根 WCT 中的私有元素

使用 Polymer 1 和 Web 组件测试器...在 chrome 上的 shady dom 中进行测试。

在 WCT 中,尝试使用 spToast.display() 存根,stub('sp-toast', { display: ()=> {} });但出现错误Attempted to wrap undefined property display as function.... 我做错了什么?

我试图存根它的原因是因为我spToast.display is not a function在测试运行代码库时得到了。

原始代码:

测试代码:

0 投票
1 回答
86 浏览

polymer - Webcomponent Tester - 如何断言一个不被调用的函数?

使用 Polymer 1.* 和 webcomponent 测试器...

我有spy(alert, 'open')expect(alert.open).to.have.not.been.called;。如何断言未调用函数?现在这个。如果我用 反转它 expect(alert.open).to.have.been.called;,它也会失败。

我试过.calledCount(0)了,默认has not been called哪个失败。

间谍很好,它只是抱怨没有断言并且测试失败的以太方式。

0 投票
1 回答
281 浏览

polymer - Stub 元素在 Ready 函数中无效

使用 Polymer 1.* 和 WCT,在测试我的元素时,<sp-veteran></sp-veteran>我无法删除方法._getSpComboBox()和函数。我明白了。._getItems()readyError thrown outside of test function: this._getSpComboBox(...)._getItems is not a function

由于它在就绪函数中,我需要使用 WCT apistub而不是sinon.stub因为后者需要我抓取我以前无法做到的元素fixture()

有什么建议么?

原始代码:

测试:

0 投票
0 回答
297 浏览

npm - 找不到错误 404:@types/escodegen@^0.0.2 在尝试安装 web-component-tester 时

在我的项目中,我们想使用 web-component-tester 测试我们的聚合物组件。

所以,我尝试运行以下命令:

每次,我都会收到以下响应: 404 Not Found: @types/escodegen@^0.0.2

我在互联网上没有找到这个版本的 escodegen,你知道是否存在安装 web-component-tester 的解决方法吗?

谢谢您的帮助。

此致。

0 投票
1 回答
1068 浏览

javascript - Web 组件:访问自定义组件类中的影子 DOM

在这个项目中,我正在尝试创建一个自定义组件,该组件将充当地图。我仍在通过 W3C 文档和几个 Youtube 视频学习 Web 组件的基础知识。

主要问题是,在组件类中有一个调用的函数attributeChangedCallback(),每当其中一个属性更改时都会触发,这些属性包含在observedAttributes()函数中,并且在设置它们之后(前面提到的函数)我尝试访问shadow DOM(即声明connectedCallback()将在组件加载到 HTML body 元素中后触发)通过选择器。但是,如果我这样做,变量内容为空。

attributeChangedCallback()应该在加载内容之后加载,所以我不明白为什么会发生这种情况,每次属性更改时我都需要访问这个元素,以便我可以更新它的内容。奇怪的事实:如果我每次attributeChangedCallback()执行它都会记录两次(因为我有两个属性被监视)。

这是片段:

更新

就像@acdcjunior 在更改this.createShadowRoot();this.shadow = this.attachShadow({mode: 'open'});(从ShadowDOM v0 到v1)之后提到的那样解决了我的问题,因为该connectedCallback()函数在幕后执行并且只执行一次。

0 投票
0 回答
100 浏览

polymer - 在 WCT 测试中禁用就绪事件或 dom 更改事件?

在聚合物 1.* 中,我正在编写一个测试。我的原始元素有一个现成的处理程序,它作用于 dom-change。

WCT 不提供在就绪处理程序中存根任何内容的方法。它也不允许我在元素被标记的确切时间存根主机属性上的数据,准备好的处理程序立即使用。

一旦元素在测试中被标记,就绪处理程序中的任何内容都会调用。

为了解决这个问题,我正在尝试抑制 dom 更改事件,但它无效。

有什么想法可以阻止准备好的处理程序在测试中调用吗?

原始代码:


原始测试:


测试 dom 更改的位置被禁用

0 投票
2 回答
45 浏览

javascript - 处理创建时触发的元素对象

所以我有一个夹具:

我设置了用于测试的夹具:

夹具的元素中有一个ready()功能:

这个ready()函数有一个对象调用它的元素:

该对象在此夹具的父级中定义:

在那里创建为:

并从其文件中调用:

我想做的就是不打扰测试otherElement

过去,当我在夹具中从另一个元素中获得一个元素时,我会简单地制作一个对象来代替它并使用假对象并制作假函数:

但在过去,如您所见,该元素也在我正在测试的夹具元素中,因此page.$.anotherElement. 不确定这真的很重要。

现在的问题是我不知道我需要做什么来覆盖otherElement对象,以便它不会在ready()函数中被调用。

我试过在设置中做我上面做的事情。

我已经尝试将元素包含到实际的测试文件中。

我试过让夹具中的元素调用本身,一个假元素,实际元素。

几乎所有我能想到的。

每次对象未定义时,我都会收到“this.otherElement is undefined”或“Cannot read property of .functionname of undefined”之类的错误。

有任何想法吗?