茉莉花链testing

我正在使用茉莉花来testing我的项目。 我用它来进行集成testing,而不是unit testing。

describe("admin", function () { var testUser = { name: 'test', pass: 'pass' }; it("should be able to create a new user", function(done) { needle.post(server + "addUser.php", testUser, function (err, res) { expect(res.statusCode).toBe(200); done(); }); }); it("should be able to delete the user", function(done) { needle.post(server + "deletedUser.php", testUser, function (err, res) { expect(res.statusCode).toBe(200); done(); }); }); }); 

如何确保在添加testing后运行删除testing?

对于任何可能遇到这种情况的人来说:使用稍大的testing集显示顺序不能保证(因为jasmine 2.3.0):

 it('a', function (done) { console.log('a'); setTimeout(done, 100); }); it('b', function (done) { console.log('b'); setTimeout(done, 100); }); it('c', function (done) { console.log('c'); setTimeout(done, 100); }); it('d', function (done) { console.log('d'); setTimeout(done, 100); }); it('e', function (done) { console.log('e'); setTimeout(done, 100); }); it('f', function (done) { console.log('f'); setTimeout(done, 100); }); it('g', function (done) { console.log('g'); setTimeout(done, 100); }); it('h', function (done) { console.log('h'); setTimeout(done, 100); }); it('i', function (done) { console.log('i'); setTimeout(done, 100); }); it('j', function (done) { console.log('j'); setTimeout(done, 100); }); it('k', function (done) { console.log('k'); setTimeout(done, 100); }); it('l', function (done) { console.log('l'); setTimeout(done, 100); }); it('m', function (done) { console.log('m'); setTimeout(done, 100); }); it('n', function (done) { console.log('n'); setTimeout(done, 100); }); it('o', function (done) { console.log('o'); setTimeout(done, 100); }); it('p', function (done) { console.log('p'); setTimeout(done, 100); }); it('q', function (done) { console.log('q'); setTimeout(done, 100); }); it('r', function (done) { console.log('r'); setTimeout(done, 100); }); it('s', function (done) { console.log('s'); setTimeout(done, 100); }); it('t', function (done) { console.log('t'); setTimeout(done, 100); }); it('u', function (done) { console.log('u'); setTimeout(done, 100); }); it('v', function (done) { console.log('v'); setTimeout(done, 100); }); it('w', function (done) { console.log('w'); setTimeout(done, 100); }); it('x', function (done) { console.log('x'); setTimeout(done, 100); }); it('y', function (done) { console.log('y'); setTimeout(done, 100); }); it('z', function (done) { console.log('z'); setTimeout(done, 100); }); // 2.1.0: abcdefghilklmnopqrstu vwxyz // 2.2.0: abcdefghilklmnopqrstu vwxyz // 2.3.0: azcdefghijklmbopqrstu vwxyn // 2.3.1: azcdefghijklmbopqrstu vwxyn 

按照这里更新(如果有的话)。

更新:这是一个错误,并修复了v2.3.4。 所有的testing都应该现在订购。

好吧,答案可能很简单:Jasmine按照外观顺序运行testing,甚至是asynchronoustesting。

为了testing这个,我尝试了:

 it("A", function (done) { console.log("A"); setTimeout(done, 4000); }); it("B", function (done) { console.log("B"); setTimeout(done, 20); }); it("C", function () { console.log("C"); }); 

输出是ABC ,在testingA被调用之前,testingB不启动。