假設我有一個函數返回一個乘以2的數字。使用Mocha和Chai在JavaScript中測試隨機數函數
function double(number){
return number * 2;
}
var expect = require("chai").expect;
describe("#double", function(){
it("should double a number", function(){
expect(double(2)).to.equal(4);
expect(double(4.5)).to.equal(9);
expect(double(-3)).to.equal(-6);
});
});
但現在假設我有一個返回兩個指定整數之間的隨機整數的函數,叫他們min
和max
。
function randBetween(min, max){
return Math.floor(Math.random() * (max - min + 1) + min);
}
我無法預測返回值會等於什麼。我可以編寫一個測試,確保返回值大於或等於min
且小於或等於max
,但實際上並不測試返回值是否爲隨機。有沒有統計上有效的方法來測試我的randBetween
函數是否正常工作?
P.S.我知道這個函數沒有處理無效的參數,例如如果max
小於min
。請暫時擱置一邊。