Class goog.testing.PropertyReplacer
code »Helper class for stubbing out variables and object properties for unit tests. This class can change the value of some variables before running the test cases, and to reset them in the tearDown phase. See googletest.StubOutForTesting as an analogy in Python: http://protobuf.googlecode.com/svn/trunk/python/stubout.py Example usage:
var stubs = new goog.testing.PropertyReplacer(); function setUp() { // Mock functions used in all test cases. stubs.set(Math, 'random', function() { return 4; // Chosen by fair dice roll. Guaranteed to be random. }); } function tearDown() { stubs.reset(); } function testThreeDice() { // Mock a constant used only in this test case. stubs.set(goog.global, 'DICE_COUNT', 3); assertEquals(12, rollAllDice()); }Constraints on altered objects:
- DOM subclasses aren't supported.
- The value of the objects' constructor property must either be equal to the real constructor or kept untouched.
Constructor
Instance Methods
Changes an existing value in an object to another one of the same type while
saving its original state. The advantage of replace
over #set
is that replace
protects against typos and erroneously passing tests
after some members have been renamed during a refactoring.
replace
over #set
is that replace
protects against typos and erroneously passing tests
after some members have been renamed during a refactoring.Parameters |
---|
|
Throws |
|
Adds or changes a value in an object while saving its original state.
Instance Properties
Static Functions
code »goog.testing.PropertyReplacer.deleteKey_ ( obj, key )Deletes a key from an object. Sets it to undefined or empty string if the
delete failed.
code »goog.testing.PropertyReplacer.hasKey_ ( obj, key ) ⇒ boolean
Tells if the given key exists in the object. Ignores inherited fields.
boolean