在 Jasmine 中生成测试
Generating Tests in Jasmine
我有一些 JavaScript 正在用 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);
}
});
我正在尝试找出如何在 运行 时间动态生成一些测试。
谢谢!
根据@Michael Radionov 的评论,您可以使用 for loop.Sample 动态生成测试用例的代码动态生成测试用例,如下所示:
describe("Generating Tests with Jasmine",function(){
//var parameters = [1, 8.24, -1];
//var results = [5, 4, 0];
var tests = [
{parameter: 1, result: 5},
{parameter: 8.24, result: 4},
{parameter: -1, result: 0}
];
tests.forEach(function(test) {
it('should be ' + test.result + ' when parameter is '+test.parameter, function(done) {
var result = library.calculate(test.parameter);
expect(result).toBe(test.result);
done();
});
});
});
我有一些 JavaScript 正在用 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);
}
});
我正在尝试找出如何在 运行 时间动态生成一些测试。
谢谢!
根据@Michael Radionov 的评论,您可以使用 for loop.Sample 动态生成测试用例的代码动态生成测试用例,如下所示:
describe("Generating Tests with Jasmine",function(){
//var parameters = [1, 8.24, -1];
//var results = [5, 4, 0];
var tests = [
{parameter: 1, result: 5},
{parameter: 8.24, result: 4},
{parameter: -1, result: 0}
];
tests.forEach(function(test) {
it('should be ' + test.result + ' when parameter is '+test.parameter, function(done) {
var result = library.calculate(test.parameter);
expect(result).toBe(test.result);
done();
});
});
});