Encapsulate ExpectationResult

This commit is contained in:
Davis W. Frank & Rajan Agaskar
2012-11-29 12:17:45 -08:00
parent 34bd1969e7
commit f840458b34
5 changed files with 44 additions and 41 deletions

View File

@@ -510,23 +510,23 @@ jasmine.util.extend = function(destination, source) {
//TODO: expectation result may make more sense as a presentation of an expectation.
jasmine.ExpectationResult = function(params) {
this.type = 'expect';
this.matcherName = params.matcherName;
this.passed_ = params.passed;
this.expected = params.expected;
this.actual = params.actual;
this.message = this.passed_ ? 'Passed.' : params.message;
var self = this;
var trace = (params.trace || new Error(this.message));
this.trace = this.passed_ ? '' : trace;
};
jasmine.ExpectationResult.prototype.toString = function () {
return this.message;
};
jasmine.ExpectationResult.prototype.passed = function () {
return this.passed_;
var message = params.passed ? 'Passed.' : params.message;
return jasmine.util.extend(self, {
type: 'expect',
matcherName: params.matcherName,
expected: params.expected,
actual: params.actual,
message: message,
trace: params.passed ? '' : trace,
toString: function() {
return message;
},
passed: function() {
return params.passed;
}
});
};
/**
* Environment for Jasmine

View File

@@ -61,12 +61,10 @@ describe("Custom Matchers", function() {
});
suite.execute();
var passResult = new jasmine.ExpectationResult({passed: true, matcherName: 'toBeTrue',
actual: true, expected: jasmine.undefined, message: "Passed." });
var failResult = new jasmine.ExpectationResult({passed: false, matcherName: 'toBeTrue',
actual: false, expected: jasmine.undefined, message: "Expected false to be true." });
failResult.trace = originalJasmine.any(Object);
expect(spec.results().getItems()).toEqual([passResult, failResult]);
var results = spec.results().getItems();
expect(results[0].message).toEqual("Passed.");
expect(results[1].message).toEqual("Expected false to be true.");
});
it("should pass args", function() {

View File

@@ -5,11 +5,16 @@ describe("ExpectationResult", function() {
expect(result.passed()).toBe('some-value');
});
it("#toString returns message", function() {
var result = new jasmine.ExpectationResult({message: 'some-value'});
it("#toString returns message when failing", function() {
var result = new jasmine.ExpectationResult({passed: false, message: 'some-value'});
expect(result.toString()).toBe('some-value');
});
it("#toString returns Passed when passing", function() {
var result = new jasmine.ExpectationResult({passed: true, message: 'some-value'});
expect(result.toString()).toBe('Passed.');
});
it("has a type of expect", function() {
var result = new jasmine.ExpectationResult({});
expect(result.type).toBe('expect');

View File

@@ -110,7 +110,7 @@ process.argv.forEach(function(arg) {
}
});
var specs = jasmine.getAllSpecFiles(__dirname, new RegExp(".js$"));
var specs = jasmine.getAllSpecFiles(__dirname, new RegExp("Spec.js$"));
var domIndependentSpecs = [];
for (var i = 0; i < specs.length; i++) {
if (fs.readFileSync(specs[i], "utf8").indexOf("document.createElement") < 0) {

View File

@@ -1,20 +1,20 @@
//TODO: expectation result may make more sense as a presentation of an expectation.
jasmine.ExpectationResult = function(params) {
this.type = 'expect';
this.matcherName = params.matcherName;
this.passed_ = params.passed;
this.expected = params.expected;
this.actual = params.actual;
this.message = this.passed_ ? 'Passed.' : params.message;
var self = this;
var trace = (params.trace || new Error(this.message));
this.trace = this.passed_ ? '' : trace;
};
jasmine.ExpectationResult.prototype.toString = function () {
return this.message;
};
jasmine.ExpectationResult.prototype.passed = function () {
return this.passed_;
var message = params.passed ? 'Passed.' : params.message;
return jasmine.util.extend(self, {
type: 'expect',
matcherName: params.matcherName,
expected: params.expected,
actual: params.actual,
message: message,
trace: params.passed ? '' : trace,
toString: function() {
return message;
},
passed: function() {
return params.passed;
}
});
};