1

I am looking for a way to replicate the window.document object so that I can run jQuery in a non-browser environment.

My goal is to have a set of javascript unit tests that are exercised with MSTest with the help of a .NET javascript interpreter. I would like to have these javascript unit tests run with the rest of our C# tests.

So far, simple unit tests using the interpreter work fine and behave perfectly, however, throwing jQuery and the use of browser objects into the mix isn't working due to the non-browser environment. I have searched and cannot find any type of mock/fake document object that I could use.

4

2 回答 2

0

它不仅仅是文档对象。Jquery 与浏览器基础设施紧密相关,需要完整的 DOM、回调、CSS 支持等。

我在 clr 世界中找不到等价物,但我已经成功在 htmlUnit/rhino 上运行 jquery。

那么,如何使用它呢?最简单的方法是创建一个 Java 命令行应用程序,将 htmlUnit 和 Rhino 作为无头模拟浏览器运行,并注入您想要在命令行上运行的 jsUnit 测试。

如果您想要更好的集成,那么您可以尝试在 IKVM 上运行 htmlUnit 和 Rhino。这样您就可以直接从您的 c# 测试中触发您的测试。

另一种是使用 Selenium Webdriver/OpenQA。它有一个 C# 接口。然后,您可以针对真正的浏览器或无标题等效项运行测试。这是我使用的方法。在开发过程中,我在 Chrome 上运行,所以我可以看到有什么问题。然后我针对 htmlUnit/Rhino 运行它以进行持续集成测试。

于 2012-07-05T22:24:23.340 回答
0

如果你想在 MSTest 中运行 JavaScript 单元测试,那么你应该看看Chutzpah。它与 Visual Studio 集成,并在测试资源管理器(与常规 C# 单元测试相同的面板)中显示测试和结果。它支持 QUnit、Jasmine 和 Mocha。它使用PhantomJS无头浏览器,因此它可以处理 DOM 等。

有一个命令行测试运行器,它接受一个 html 文件或一个 js 文件,它有一个 VS 上下文菜单项,用于在选定的文件中运行测试。

用于测试资源管理器的 Chutzpah 测试适配器

Chutzpah 测试运行程序上下文菜单扩展

GitHub 上的 Chutzpah

至于嘲笑文件。我建议您在测试之前在代码中创建所需的任何 DOM 元素。PhantomJS 提供了一个 DOM,因此当测试在 Chutzpah 中运行时,您的 jQuery 代码将能够获取您的元素。

我觉得非常好用。

于 2014-11-24T20:27:18.873 回答