我正在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)
有人可以启发一个单位测试新手。也许我做错了。
答案 0 :(得分:3)
如果expect()
块中有多个expect()
,则堆栈跟踪会告诉您哪个it()
函数失败了。
正如@zbynour所提到的,你必须在你的MomentSpec.js
中找到你的第11行,第38位,找出来!