我想为一个名为" fibb"的函数编写单元测试。使用摩卡,柴或茉莉。
app.js
fibb: function (n) {
if(n==1) {
return 1;
} else {
return (n * (n-1));
}
}
test.js
var fibb = require("../app").fibb;
describe('App', function() {
it('should be 20', function() {
assert.equal(fibb(5), 20);
});
});
这段代码适用于语句2(n*(n-1))
,但我想写两种可能性(当'n == 1 and
(n *(n-1))`语句时)。
答案 0 :(得分:0)
每个测试用例应该只测试一个代码执行路径或代码分支,这样会很清楚。您的代码使用 if/else
语句。所以,有两个分支。不考虑边界值,至少需要写两个测试用例。
例如
app.js
:
const app = {
fibb: function (n) {
if (n == 1) {
return 1;
} else {
return n * (n - 1);
}
},
};
module.exports = app;
app.test.js
:
var fibb = require('./app').fibb;
const { assert } = require('chai');
describe('App', function () {
it('should be 20', function () {
assert.equal(fibb(5), 20);
});
it('should be 1', () => {
assert.equal(fibb(1), 1);
});
});
测试结果:
App
✓ should be 20
✓ should be 1
2 passing (4ms)