テストする必要のあるJSクラスがあります。
SomeClass = function {
// some stuff that uses initRequest
this.initRequest = function() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
}
テスト目的でメソッドinitRequestをオーバーライドしたい。私はそのようなことをしようとしました
var request = new MockXmlHttpRequest();
var instance = new SomeClass();
instance.initRequest = function() {
return request;
};
// some calls of the SomeClass methods that use initRequest
// some test code with assertions for the request
それでもinitRequest
メソッドを呼び出すと、実際には元のコードが呼び出されますが、渡そうとした関数は呼び出されませんinstance.initRequest
。
何が問題なのですか?