我有用Polymer 2构建的组件,并且当url中存在query-params标志时,我有一些调用函数的行为。但是我怎么可以用Sinon来测试呢?
使用以下命令检查查询参数的组件
new URLSearchParams(window.location.search);
以及
this.switcher = urlParams.get('some-flag')
我需要调用函数。我在connectedCallback中做了这种行为。
是否可以使用sinon更改url以测试此行为?
我试图制作虚假的检查url函数,并通过调用connectedCallback手动设置this.switcher标志,但这完全无济于事。
我在文档中找不到任何建议。
答案 0 :(得分:0)
您可以stub的URLSearchParams方法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();