我有一些JavaScript,我正在测试Jasmine。在这个时候,我的套房之一是这样的:在Jasmine中生成测试
var library = require('../library');
describe('My App -', function() {
afterEach(function(done) {
// some clean up code goes here
library.cleanUp(done);
done();
});
describe('Test Operation 1 -', function() {
beforeEach(function(done) {
library.init(done);
});
it('should load fine', function() {
if (library) {
expect(true).toBe(true);
} else {
expect(false).toBe(true);
}
});
var parameters = [1, 8.24, -1];
var results = [5, 4, 0];
// [TODO]: Create tests here
});
});
有我产生从我parameters
和results
阵列规格的方法吗?换句话说,在运行时,我会实质类似的动态运行:
it('should be 5 when parameter is 1', function(done)) {
var result = library.calculate(1);
expect(result).toBe(5);
done();
});
it('should be 4 when parameter is 8.24', function(done) {
var result = library.calculate(8.24);
expect(result).toBe(4);
done();
});
it('should be 0 when parameter is -1', function(done) {
var result = library.calculate(-1);
expect(result).toBe(0);
done();
});
我不想如下:
it('should test the parameters', function() {
for (var i=0; i<parameters.length; i++) {
var result = library.calculate(parameters[i]);
expect(results[i]).toBe(result);
}
});
我试图弄清楚如何动态地在运行时生成一些测试。
谢谢!
如果与循环您的问题是这些信息并不足够具体,您可能需要查看茉莉花自定义消息(github上的库)。它允许你有一个自定义/确切的消息,但在循环内。 – ktharsis
''''''''''''''''''可以放在'for'循环中,因此您将在它们中的每一个中都有单个期望的多个规格,而不是一个具有多个期望的规格(就像它在最后的代码示例中一样)。 “it”的标题也可以动态创建,具体取决于当前的循环迭代。 –
@MichaelRadionov有什么方法可以在'eval'中放一个'it'?如果是这样,怎么样? –