3

I have a couple of functions that use jQuery. And I'm having trouble making sense of the proper way to test them with jQuery-Chai in Mocha+Chai.

I see the list of assertions in the jQuery-Chai plugin. However, I don't understand where we get the DOM data to run those assertions?

Ideally I want to insert a line of html. Run the function on it. And use the jQuery-Chai assertion to validate.

Can someone help clear up where I would include the fixture to test these functions?

Thanks in advance.

Using: Testem with Mocha+Chai.

4

1 回答 1

1

如您所述,chai-jquery仅提供可用于 DOM 元素的断言。您需要使用不同的库来实际填充 DOM。由于您已经需要包含 jQuery 才能使 chai-jquery 工作,因此最简单的解决方案可能是使用 jQuery 的append()函数将子元素添加到 DOM,然后在测试结束时使用 jQuery 的remove()函数删除它们。

或者,如果您想稍微抽象一下 DOM 操作,您可以尝试引入一个固定库。为此,我最喜欢的是js-fixturesset()如果这就是您所需要的,您仍然可以使用该函数轻松插入一行 html :

fixtures.set('<div>Your html here</div>');

但是,如果您的测试 html 变得更加复杂,您可以将其提取到一个示例 html 文件中,并使用以下函数将其全部加载到 DOM 中load()

fixtures.load('yourTestPage.html');

最后,当您的测试完成后,您可以使用fixtures.cleanUp().

于 2016-10-03T18:53:03.510 回答