A simplified version of mgsdev's answer, put the download code in the beforeEach statement, so you can write short expectations.
module:
define("stringCalculator", function () { return { calculate: function (string) { var result = 0; string.split("+").forEach(function(number) { result += parseInt(number); }); return result; } }; });
test file: if the calculator is undefined, it will try to load it before each wait.
/// <reference path="~/Scripts/require.js"/> /// <reference path="~/code/stringCalculator.js"/> describe("string calculator", function () { var calculator; beforeEach(function () { if (!calculator) { require(["stringCalculator"], function (stringCalculator) { calculator = stringCalculator; }); waitsFor(function () { return calculator; }, "loading external module", 1000); } }); it("should add 1 and 2", function () { var result = calculator.calculate("1+2"); expect(result).toEqual(3); }); it("should add 2 and 2", function () { var result = calculator.calculate("2+2"); expect(result).toEqual(4); }); it("should add 1, 2 and 3", function() { var result = calculator.calculate("1+2+3"); expect(result).toEqual(6); }); });
source share