过去两个月我一直在编写测试(用 JavaScript)。而且,我有检查模块是否具有某些属性的习惯。
例如:
// test/foo.js
const Foo = require('../lib/foo');
const Expect = require('chai').expect;
describe('Foo API', () => {
it('should have #do and #dont properties', () => {
Expect(foo).to.have.property('do')
.and.to.be.a('function');
Expect(foo).to.have.property('dont')
.and.to.be.a('function');
});
});
});
而且,我一直在想我是否在做正确的事情。只是想知道一些事情:
这个模式“正确”吗?
- 是否被广泛使用?
- 还有其他方法吗?
如果它不“正确”?
- 为什么?
它甚至有意义吗?
- 我的意思是,它是不必要的还是多余的?
最佳答案
不要测试类型。测试特定属性值是否符合预期值。
因此,不是“foo 是一个函数”,而是编写一个调用 foo 并期望特定结果的测试。
如果 foo 不是一个函数,您将生成一个错误并且测试将失败(这很好)。如果 foo 是一个函数,您将对该函数的行为进行适当的测试。
关于javascript - 我应该测试模块是否具有某些属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38154409/