0

作为我尝试学习 Web 开发的一部分,我已经达到了一个点,即我想在我的 rails 环境中测试一些咖啡脚本类。

我有一个一直在开发的 rails 4.03 应用程序(它基于 rails教程)。在学习 rails 的过程中,我已经习惯了使用 rspec 和 FactoryGirl,所以如果可能的话,我想尝试对 coffeescript 遵循类似的流程。

我把我所有的咖啡脚本写成单独的类,每个类都有自己的文件,所以我认为它们应该是可测试的。

我目前安装了茶匙,它看起来很像 rspec。我有一些基本测试,但现在我需要开始编写真正的测试。Teaspoon 支持固定装置,但我注意到有一个名为factory_girl的 node.js 包,它似乎是 ruby​​ FactoryGirl for rspec 的一个端口。我使用 npm -install 安装了这个包,现在我将它列在我的 rails 文件夹中的“node_modules”下。

有人能告诉我是否可以使用这个包来生成用茶匙测试的对象,如果可以的话怎么做?

更新: 我将以下答案标记为已接受,因为我能够让 FactoryGirl 运行。我所做的是(如答案中所建议的)是将 factory_girl.js 文件复制到可以由资产管道规范/javascripts/support 加载的位置,然后在 spec/javascripts/spec_helper.coffee 文件中需要它.

问题是该功能似乎与 rails 中发生的不匹配(除非我完全忘记了它在 rails 中是如何工作的)。在 Rails 中,我可以为模型定义一个工厂,创建的对象将是我与该工厂相关联的类的实例。这里似乎与我试图生成实例的类没有任何关联。例如,只有我在工厂定义中定义的属性可用,对象上没有定义任何方法。我可能做错了什么,或者尝试使用咖啡脚本以某种方式破坏了这一点。

4

1 回答 1

2

Teaspoon (大部分)不使用节点,主要是基于 runner 基础的 rails。在 rails 层之上,它使用 Jasmine、Mocha 或 QUnit 作为浏览器测试框架。

尝试将节点模块加载到其中并不容易,或者在某些情况下是可能的。如果理论上可以将 factory_girl.js 加载到浏览器中,您可以在您的规范助手中要求该文件(如果它位于资产路径中),然后根据需要使用它。

免责声明:我是 Teaspoon 的主要作者,但从未使用过 factory_girl.js(但使用过 factory_girl gem)。

于 2014-06-25T22:02:07.840 回答