Я не знаю JSUnit, но как насчет использования toString()
?
assertEquals(mynode.onclick.toString(), "function( ){ return true; }");
Конечно, есть проблема с равенством строк.Но, приложив немного усилий, вы сможете избавиться от всех пробелов в этих двух строках и сравнивать их без табуляции, пробелов и переносов ...
Не думаю, что вы можете сравнивать методы / функции вJavaScript.Если вы хотите сравнить две функции, вы фактически сравниваете их ссылки.Это означает, что если вы указали даже одну и ту же функцию в другом месте кода, она будет считаться другой функцией (с другим адресом).
Проверьте это для получения дополнительной информации о равенстве Операторы строгого равенства
РЕДАКТИРОВАТЬ: вы можете попытаться написать тест таким образом, но все еще есть возможность получить false
:
var myHandler = function() { return true; };
MyLibrary.attachEvent( mynode, "click", myHandler);
assertEquals(mynode.onclick, myHandler);
, поскольку вы используете точно такую же функцию,который имеет одинаковую ссылку в обоих случаях вы используете его.Однако вы должны быть осторожны с тем, что MyLibrary.attachEvent
делает с переданной ссылкой на myHandler
(например, копирует ли она? Расширяет? Просто сохраняет ссылку? ...)