【问题标题】:Is it possible to use factory_girl.js with teaspoon?是否可以将 factory_girl.js 与茶匙一起使用?
【发布时间】:2014-06-25 01:31:18
【问题描述】:

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

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

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

我目前安装了teaspoon,它看起来很像 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 中,我可以为模型定义一个工厂,创建的对象将是我与该工厂关联的类的实例。这里似乎与我试图生成实例的类没有任何关联。例如,只有我在工厂定义中定义的属性可用,对象上没有定义任何方法。 我可能做错了什么,或者尝试使用咖啡脚本会以某种方式破坏它。

【问题讨论】:

    标签: javascript ruby-on-rails node.js coffeescript teaspoon


    【解决方案1】:

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

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

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

    【讨论】:

    • @jejacksOn ...我正在浏览文件并看到 factory_girl.js 文件并且正在考虑同样的事情(试图将其包含在内)。我所做的是将 factory_girl.js 文件复制到 spec/javascripts/support 中,然后将 #= require support/factory_girl 添加到 spec_helper.coffee 文件中,我认为它可以工作。让我尝试一些事情,如果它确实有效,我会将其标记为答案。谢谢!
    猜你喜欢
    • 2023-03-31
    • 2021-11-12
    • 2016-04-01
    • 2011-01-20
    • 2018-08-11
    • 2021-08-05
    • 2019-03-18
    • 2014-03-15
    • 2021-03-31
    相关资源
    最近更新 更多