function coin(x) { return Math.random() < x; } こういう関数があったとして、どうテストを書くのか。 ぱっと思いつくのはこういう感じで、Math.random 自体を上書きするやり方。 describe("coin(x)", function() { it("works", sinon.test(function() { this.stub(Math, "random", function() { return 0.5; }); assert(coin(0.4) === false); assert(coin(0.5) === false); assert(coin(0.6) === true); })); }); このやり方、たしかに間違っていないんだけど、関数のインターフェース自体を変更した方が良いと思う。 function coin(x,