"use strict";
var buster = require("buster"),
assert = buster.assert,
refute = buster.refute;
buster.testCase("stub reset test", {
setUp: function () {
this.server = {
close: function () {
throw new Error("server is not running");
}
};
this.stub(this.server, "close");
refute.exception(this.server.close);
},
tearDown: function () {
refute.exception(this.server.close);
},
"method close should be stubbed": function () {
refute.exception(this.server.close);
}
});
leads to the following result:
Failure: stub reset test method close should be stubbed
[refute.exception] Expected not to throw but threw Error (server is not running)
AssertionError: [refute.exception] Expected not to throw but threw Error (server is not running)
at Object.referee.fail (D:\busterDev\referee\lib\referee.js:156:25)
at Object.fail (D:\busterDev\referee\lib\referee.js:43:17)
at Function.refute.exception (D:\busterDev\referee\lib\referee.js:562:18)
at Object.buster.testCase.tearDown (D:\busterDev\buster-ci\test\stub-test.js:20:16)
at asyncFunction (D:\busterDev\buster-test\lib\test-runner.js:224:19)
at callAndWait (D:\busterDev\buster-test\lib\test-runner.js:253:23)
at next (D:\busterDev\buster-test\lib\test-runner.js:273:31)
at callSerially (D:\busterDev\buster-test\lib\test-runner.js:279:9)
at Object.bane.createEventEmitter.callTearDowns (D:\busterDev\buster-test\lib\test-runner.js:589:20)
at Object.<anonymous> (D:\busterDev\buster-test\lib\test-runner.js:626:17)
1 test, 2 assertions, 1 runtime ... 1 failure
As you can see, the failure occurs in line 20 of the test, which is inside of tearDown.
Question is, what is more useful, to reset the stubs before or after tearDown?
Executing this test (
stub-test.js
):leads to the following result:
As you can see, the failure occurs in line 20 of the test, which is inside of
tearDown
. Question is, what is more useful, to reset the stubs before or aftertearDown
?