0

我有一个问题。我最近才开始使用CanJS并尝试创建单元测试(funcunit / jasmine),该测试将在使用 TeamCity(无头)的 maven 构建中工作。

测试模型相对容易,因为它不依赖任何视图,您可以创建实例和测试功能。但对我来说如何测试组件和CanJS. 只是为了澄清我不需要通过用户交互进行E2E测试,我想要实现的只是拥有 Can.fixtures 提供的一些数据,然后通过在测试中调用它们来测试我的函数是否正常工作。

4

1 回答 1

0

控制器测试受益于向 Jasmine 测试台添加jasmine-fixture 。您可以 affix() 适当的 DOM 元素并在beforeEach()向实例或控制器原型添加间谍之前实例化控制器,然后触发事件或直接调用需要某些 DOM 树可用的函数。

对于组件,还涉及一个步骤。由于组件被实例化的方式,要么您必须使用它can.view()来创建它们的自定义元素并将其附加到 DOM(并在 中清理它afterEach()),或者您必须使用它can.view.callbacks.tagHandler(el, tag_name)来手动实例化 DOM 中已经存在的元素的组件。

需要明确的是,当你的控制器/组件函数从 DOM 中获取数据时,这会让事情变得更容易,就像在事件处理程序中一样。它也可以直接在原型上调用函数并为和制作间谍this.scope对象this.options

于 2014-12-09T00:10:48.543 回答