【问题标题】:Use intern js with meteor使用实习生 js 和流星
【发布时间】:2015-06-18 18:04:48
【问题描述】:

我正在 Meteor 上启动一个项目,我正在尝试使用实习生 js 进行测试。 所以,我有一个 mongoDB 集合,我正在尝试对其进行测试。

我在要测试的文件上有这个声明

this.Teams = new Meteor.Collection('teams');

我在这一行得到了这个错误:

ReferenceError : Meteor is not defined

有没有办法解决这个问题?

问候

【问题讨论】:

  • 如何将 Meteor 加载到环境中?你是如何管理实习生的?
  • @CSnover,请在下面验证我的答案。谢谢

标签: meteor intern


【解决方案1】:

我设法用 TheIntern.js 测试了 Meteor 应用程序。

虽然这是我的需要。但我仍然认为它可能会引导某人走向正确的方向,我正在分享我为解决这个问题所做的工作。

有一个 execute 函数允许我们运行 JS 代码,我们可以访问浏览器 window 对象,因此也可以访问 Meteor

想了解更多关于execute

这就是我的test suite 寻找功能测试

的方式
define(function (require) {
    var registerSuite = require('intern!object');
    var assert = require('intern/chai!assert');
    registerSuite({
        name: 'index',

        'greeting form': function () {
            var rem = this.remote;
            return this.remote
                .get(require.toUrl('localhost:3000'))
                .setFindTimeout(5000)
                .execute(function() {
                        console.log("browser window object", window)
                        return Products.find({}).fetch().length
                    })
                .then(function (text) {
                    console.log(text)
                    assert.strictEqual(text, 2,
                        'Yes I can access Meteor and its Collections');
                });
        }
    });
});

要了解更多,这是我的gist

注意:我仍处于此解决方案的早期阶段。我不知道我是否可以用这个进行复杂的测试。但我对此非常有信心。

【讨论】:

    【解决方案2】:

    您需要使用一个特殊的框架来为流星应用程序编写单元测试。见Meteor test driven development

    注意:“Meteor.Collection”是不推荐使用的命名空间。使用'Mongo.Collection'

    【讨论】:

    • 那么我没有办法使用 Intern js 来测试我的应用程序吗?
    • 这绝对不是真的。您可以使用 Intern 测试使用任何框架编写的任何应用程序。
    • 那怎么办?我在网上没有看到任何例子
    • 自从在Meteor中发现了build方法,我觉得用internjs是可以的。事实上,当你构建你的应用程序时,你使用节点而不是流星来运行它。我会做一些测试并让你们保持联系
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2012-10-10
    • 1970-01-01
    • 2012-12-01
    • 2014-02-14
    相关资源
    最近更新 更多