я хотел бы модульное тестирование на некоторые логики в моей директиве:AngularJS: методы Stubbing JQlite
...
link: function ($scope, $element) {
var rightMargin = 3;
var w = $element.find('span')[0].scrollWidth;
if (w > 100) {
$element.css('width', (w + rightMargin) + 'px');
}
...
Поскольку служба $ компилировать на самом деле не добавлять элементы на документе, scrollWidth всегда возвращает 0. Так что я не знаю, как заглушить возвращаемое значение вызова $ element.find, потому что нет способа получить доступ к экземпляру $ element в моем модульном тесте.
Шпионаж от метода непосредственно от элемента не работает. Я получаю сообщение от sinon, говорящий «не мог вызвать восстановление неопределенного». – spinningarrow