Meteor 1.3 测试简介

原文地址:https://themeteorchef.com/blog/meteor-1-3-from-a-20-000-foot-view/

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

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

测试如何工作?

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

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()方法,我们可以确认这点。

如何运行测试

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

meteor

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

meteor test --driver-package avital:mocha --port 3100

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

1.3-tests-demo.gif

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容