如何使用sinon更改已测试聚合物组件的url查询参数

时间:2019-06-12 09:53:50

标签: javascript polymer sinon

我有用Polymer 2构建的组件,并且当url中存在query-params标志时,我有一些调用函数的行为。但是我怎么可以用Sinon来测试呢?

使用以下命令检查查询参数的组件

new URLSearchParams(window.location.search);

以及

this.switcher = urlParams.get('some-flag')

我需要调用函数。我在connectedCallback中做了这种行为。

是否可以使用sinon更改url以测试此行为?

我试图制作虚假的检查url函数,并通过调用connectedCallback手动设置this.switcher标志,但这完全无济于事。

我在文档中找不到任何建议。

2 个答案:

答案 0 :(得分:0)

您可以stubURLSearchParams方法get返回所需的内容:

sinon.stub(URLSearchParams.prototype, 'get').returns('some-value');

如果您需要更复杂的逻辑来模拟get方法的返回值,则可以使用sinon存根的callsFake方法。

答案 1 :(得分:0)

我稍微修改了@mgarcia的答案,这对我有用:

urlSearchParams = sinon.stub(URLSearchParams.prototype, "get"); 
urlSearchParams.returns('some new data');
function_under_test();
assert.equal( place_assert_stuff_here );
urlSearchParams.restore();