前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meteor 1.3 测试简介

Meteor 1.3 测试简介

作者头像
时见疏星
发布2018-06-01 11:23:24
5590
发布2018-06-01 11:23:24
举报
文章被收录于专栏:星流全栈

Meteor 1.3新增的NPM支持能够帮助开发者构建更加模块化的应用,但是假如我们不能保证应用按照我们的需求工作,那么这将毫无意义。我们需要开发新特性和重构代码,并且对这些工作有足够的信心。所以自动化测试是成功的关键。Meteor 1.3对模块的测试给予我们一个官方的回应。现在开发者能够将他们的代码分割成更小,更容易维护的小片段,他们现在就可以更高效地测试应用了。

之前,由Xolv.io开发的Velocity被推荐为测试Meteor应用的官方解决方案。但是Xolv.io停止开发了Velocity,然后把开发官方测试工具的责任交给了MDG。看起来他们给出了测试Meteor应用的非常棒的解决方案。

测试如何工作?

Meteor 1.3的测试文件有一个特殊的后缀名.tests.js,并且它们能在任何文件夹下。这里是一个简单的单元测试例子,基于我们之前的模块cat-stuff.js

代码语言:javascript
复制
import { mocha } from 'meteor/avital:mocha';
import { chai, assert } from 'meteor/practicalmeteor:chai';
import laserPointer from './cat-stuff.js';

describe( 'Cat Stuff', () => {
   it( 'draws a laser pointer\'s position as a number', () => {     let laser = laserPointer();
     assert.typeOf( laser.position, 'number' );
   });
});

尽管不是必须的,这里我们导入 practicalmeteor:chai 扩展包到我们的测试文件让我们能够获得 Chai assertion library。Mocha有它自己的 assertion library,但是一些开发者更倾向于使用 Chai。他们都能完成工作!

这里,我们期望laserPointer()犯法返回一个对象,其中的position参数是一个数字类型,使用Chai的assert.typeOf()方法,我们可以确认这点。

如何运行测试

目前,测试需要两步来完成,首先,像往常一样运行你的应用:

代码语言:javascript
复制
meteor

然后在另一个端口上运行测试汇报(假设这里应用运行端口为3000)

代码语言:javascript
复制
meteor test --driver-package avital:mocha --port 3100

浏览器打开http://localhost:3100,你应该看到一个报表展示了你的测试。一个好消息是,这里的测试是响应式的。如果你修改了测试的代码或是应用的代码,测试会自动重新运行。这和Velocity的方法类似,如果你有时间的话,可以较为平滑地将测试按照官方解决方案迁移。

The Meteor Guide’s (draft) article on testing讲解了对于许多不同类型测试的支持,比如单元测试,集成测试,验收测试/端到端测试,负载测试。目前测试只能用Mocha来写 (using the avital:mocha package),但在未来不会有这些限制。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 星流全栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试如何工作?
  • 如何运行测试
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档