Preparation Code Preparation HTML (this will be inserted in the <body>
of a valid HTML5 document in standards mode) (useful when testing DOM operations or including libraries) <script >
Object .defineProperties (Object .prototype , {
_create : {
value : function (state ) {
var This = this .constructor ;
if (This .prototype !== this && this .hasOwnProperty ('constructor' )) This .prototype = this ;
return new This (state);
},
writable : true ,
configurable : true
},
_create2 : {
value : function (state ) {
var obj = state;
obj.__proto__ = this ;
return obj;
},
writable : true ,
configurable : true
},
constructor : {
value : function (state ) {
for (var name in state) this [name] = state[name]
},
writable : true ,
configurable : true
}
});
object$ = Object .prototype ;
Object .create2 = function (proto ){
var obj = {};
obj.__proto__ = proto;
return obj;
}
</script >
Setup JS function MyClass (x, y ) {
this .x = x;
this .y = y;
}
var MyProtoClass = {
init : (function (x, y ) {
this .x = x;
this .y = y;
return this ;
}),
x : 0 ,
y : 0
};
function doSomething (obj ) {
var x = obj.x + obj.y ,
y = obj.x * obj.y ,
z = obj.x - obj.y ;
return x * y * z;
}
var x = 0 | (Math .random () * 10000 ),
y = 0 | (Math .random () * 10000 );
Teardown JS
Test cases
Test #1 Title *
Async
Code * var obj = new MyClass (x, y);
doSomething (obj);
Test #2 Title *
Async
Code * var obj = Object .create (MyProtoClass ).init (x, y);
doSomething (obj);
Title *
Async
Code *
var obj = Object .create (MyProtoClass );
obj.x = x;
obj.y = y;
doSomething (obj);
Title *
Async
Code * var obj = object$._create ({
x : x,
y : y
});
doSomething (obj);
Title *
Async
Code * var obj = object$._create2 ({
x : x,
y : y
});
doSomething (obj);
Title *
Async
Code * var obj = Object .create2 (MyProtoClass );
obj.x = x;
obj.y = y;
doSomething (obj);
Title *
Async
Code * var obj = Object .create3 (MyProtoClass );
obj.x = x;
obj.y = y;
doSomething (obj);