使用实习生 js 和流星

Posted

技术标签:

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

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

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

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

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

ReferenceError : Meteor is not defined

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

问候

【问题讨论】:

如何将 Meteor 加载到环境中?你是如何管理实习生的? @CSnover,请在下面验证我的答案。谢谢 【参考方案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是可以的。事实上,当你构建你的应用程序时,你使用节点而不是流星来运行它。我会做一些测试并让你们保持联系

以上是关于使用实习生 js 和流星的主要内容,如果未能解决你的问题,请参考以下文章

怎么才能到KnownsecFED前端团队实习?

阿里云急招实习生

阿里云急招实习生

运行实习生测试时加载dojo补丁文件

阿里云数据湖分析急招实习生

阿里云数据湖分析急招实习生