dwf/cj: added function and tests to get a suite's spec count

This commit is contained in:
pivotal 2009-08-27 14:21:10 -07:00
parent 7edeb13be8
commit 187bde37ca
4 changed files with 88 additions and 14 deletions

View File

@ -1754,7 +1754,6 @@ jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
self.specs = [];
};
jasmine.Suite.prototype.getFullName = function() {
var fullName = this.description;
for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
@ -1793,11 +1792,16 @@ jasmine.Suite.prototype.add = function(block) {
this.queue.add(block);
};
jasmine.Suite.prototype.execute = function(onComplete) {
var self = this;
this.queue.start(function () { self.finish(onComplete); });
jasmine.Suite.prototype.specCount = function(block) {
return this.specs.length;
};
jasmine.Suite.prototype.execute = function(onComplete) {
var self = this;
this.queue.start(function () {
self.finish(onComplete);
});
};
jasmine.WaitsBlock = function(env, timeout, spec) {
this.timeout = timeout;
jasmine.Block.call(this, env, null, spec);

View File

@ -36,6 +36,7 @@
jasmine.include('suites/RunnerSpec.js', true);
jasmine.include('suites/SpecRunningSpec.js', true);
jasmine.include('suites/SpySpec.js', true);
jasmine.include('suites/SuiteSpec.js', true);
jasmine.include('suites/TrivialReporterSpec.js', true);
</script>

65
spec/suites/SuiteSpec.js Normal file
View File

@ -0,0 +1,65 @@
describe('Suite', function() {
var fakeTimer;
var env;
beforeEach(function() {
env = new jasmine.Env();
fakeTimer = new jasmine.FakeTimer();
env.setTimeout = fakeTimer.setTimeout;
env.clearTimeout = fakeTimer.clearTimeout;
env.setInterval = fakeTimer.setInterval;
env.clearInterval = fakeTimer.clearInterval;
});
it('should keep a count of the number of specs that are run' , function() {
env.describe('one suite description', function () {
env.it('should be a test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
});
env.it('should be another test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
});
env.it('should be a third test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
});
});
var suite = env.currentRunner.suites[0];
expect(suite.specCount()).toEqual(3);
});
it('specCount should be correct even with runs/waits blocks' , function() {
env.describe('one suite description', function () {
env.it('should be a test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
});
env.it('should be another test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
this.waits(10);
this.runs(function () {
this.expect(true).toEqual(true);
});
});
env.it('should be a third test', function() {
this.runs(function () {
this.expect(true).toEqual(true);
});
});
});
var suite = env.currentRunner.suites[0];
expect(suite.specCount()).toEqual(3);
});
});

View File

@ -19,7 +19,6 @@ jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
self.specs = [];
};
jasmine.Suite.prototype.getFullName = function() {
var fullName = this.description;
for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
@ -58,8 +57,13 @@ jasmine.Suite.prototype.add = function(block) {
this.queue.add(block);
};
jasmine.Suite.prototype.execute = function(onComplete) {
var self = this;
this.queue.start(function () { self.finish(onComplete); });
jasmine.Suite.prototype.specCount = function(block) {
return this.specs.length;
};
jasmine.Suite.prototype.execute = function(onComplete) {
var self = this;
this.queue.start(function () {
self.finish(onComplete);
});
};