的NodeJS'动态打字很有趣,除了一个功能我想在开发过程中得到一些反馈我是否真正想要产生任何有意义的东西。
在C#中我会这样做:Debug.Assert(complexType.Title.length <= 10)
(在发布模式下编译时不会包含此类语句)
我发现例如柴可以做到这一点。然而,这是一个BDD / TDD框架,我计划将其放入生产代码中,而不是在测试中。
function doSomething(complexType) {
expect(complexType.title).to.be.a('string');
}
我读到这可以与Uglify一起编译,以更密切地反映Debug.Assert
行为。
这是个好主意吗?或者NodeJS有真实的&#39;断言?
答案 0 :(得分:2)
您可以使用内置的assert模板进行断言测试。
您还可以使用内置的arguments
对象来测试您收到函数的参数。这是一个例子:
var assert = require('assert');
var doSomething () {
if (arguments.length > 0) { // And you might even not need the if clause here...
assert.equal(typeof arguments[0], 'string');
}
}
doSomething('This is my title');
doSomething(1); // This will trigger the assert
另外,你可以使用内置的arguments
对象做更多的事情,但我想OP更多的是关于断言功能。