[英]What's the difference between assertion library, testing framework and testing environment in javascript?
断言库是验证事情是否正确的工具。
这使得测试代码变得更加容易,因此您不必执行数千条if
语句。
示例(使用should.js和Node.js断言模块):
var output = mycode.doSomething();
output.should.equal('bacon'); //should.js
assert.eq(output, 'bacon'); //node.js assert
// The alternative being:
var output = mycode.doSomething();
if (output !== 'bacon') {
throw new Error('expected output to be "bacon", got '+output);
}
测试框架用于组织和执行测试。
摩卡和茉莉是两种流行的选择(它们实际上有点类似)。
示例(在这里使用带有should.js的mocha):
describe('mycode.doSomething', function() {
it ('should work', function() {
var output = mycode.doSomething();
output.should.equal('bacon');
});
it ('should fail on an input', function() {
var output = mycode.doSomething('a input');
output.should.be.an.Error;
});
});
测试环境是您运行测试的地方。
Karma是一个边缘案例,从某种意义上说它是一种一次性的工具,并不是很多人喜欢它。 Karma的工作原理是在浏览器中运行单元测试(默认为PhantomJS,一个无头的WebKit浏览器),以允许您测试基于浏览器的JavaScript代码。
像Mocha和Jasmine这样的框架在浏览器和Node.js中都可以工作,并且通常默认为Node。
测试环境(或测试运行器)运行所有测试。 它启动它们,汇总结果等。
测试框架是您用于创建每个测试的框架。 例如,jasmine使用的语法
it('name of test', function() {
// do some tests
});
断言库是对测试结果的实际验证
it('name of test', function() {
assert x == 5 //pseudocode, the syntax will vary based on your asserting framework
});
尝试一个更简单的答案。 我是菜鸟,但这听起来像。
Mocha 组织测试,并且是您开始测试的地方。 nodeJS 中有基本的“断言”,您可以使用它来测试事物是否按预期运行。
Chai 是一种扩展“断言”框架的方法,因此您可以编写更多语义上有用的东西,例如:
expect(foo).to.be.a('string');
而不是不太明确的风格:
assert.ok(typeOf(foo) ==='string')
或者语义上下文较少的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.