使用实习生 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 和流星的主要内容,如果未能解决你的问题,请参考以下文章