Jasmine Spec Runner:失败测试的堆栈跟踪

Jasmine Spec Runner: Stack Trace from failed test?

本文关键字:堆栈 跟踪 测试 失败 Spec Runner Jasmine      更新时间:2023-09-26

我正在用src-folder中的moment.js做一个Jasmine-standalone-demo。

describe("moment.js -> diff", function() {
    var start, end;
    it("leap year", function() {
        start = moment([2012, 1, 26]);
        end = moment([2012, 2, 4]);
        expect( end.diff(start, "days") ).toEqual(7);
    });
    it("winter-/summertime", function() {
        start = moment("2012-10-28T02:00:00+02:00");
        end = moment("2012-10-28T03:00:00+01:00");
        expect( end.diff(start, "hours") ).toEqual(0);
    });
});

第二个测试预计会失败,它确实失败了(diff返回1),但是Jasmine给出了一个堆栈跟踪,这对我来说似乎没什么用,除非Jasmine本身有一个错误:

Error: Expected 1 to equal 0.
    at new jasmine.ExpectationResult (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:114:32)
    at null.toEqual (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:1235:29)
    at null.<anonymous> (http://localhost/jasmine/spec/MomentSpec.js:11:38)
    at jasmine.Block.execute (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:1064:17)
    at jasmine.Queue.next_ (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2096:31)
    at jasmine.Queue.start (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2049:8)
    at jasmine.Spec.execute (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2376:14)
    at jasmine.Queue.next_ (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2096:31)
    at onComplete (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2092:18)
    at jasmine.Spec.finish (http://localhost/jasmine/lib/jasmine-1.3.1/jasmine.js:2350:5)

谁能指点一下单元测试新手。也许我做错了什么。

如果在it()块中有许多expect(),堆栈跟踪将告诉您哪个expect()函数失败。

正如@zbynour所提到的,您必须去MomentSpec.js中的第11行,第38个字符才能找到答案!