Я пытаюсь выполнить модульный тест метода в контроллерах Angularjs с использованием jasminejs и Karma runner . Мой метод принимает путь изображения в аргументе и преобразует это изображение в текст (TESSERACT-OCR).Модульное тестирование Angularjs jasmine
, когда я пытаюсь вызвать модульное тестирование, как это он не работает:
TypeError: Attempted to assign to readonly property. at workFn
it('has to return text from image', inject(function($httpBackend) {
$scope.ocr("./image.png");
$httpBackend.expectPOST('/ocr').respond();
expect(scope.oceriser.bind("./ocr.png")).toMatch("ocr");
}));
, когда я сделать следующее:
it('has to return text from image', inject(function($httpBackend) {
$scope.ocr("./image.png");
$httpBackend.expectPOST('/ocr').respond();
expect($scope.ocr("./ocr.png")).toMatch("ocr");
}));
я получаю эту ошибку:
Expected undefined to match 'éàîè'.
может я получить доступ к значению scope.textes.text $ из теста ??
Мой вопрос в том, как я могу получить доступ к значению $ scope.textes.text, которое содержит текст из моего тестового файла? возможно ли, я не думаю, потому что он находится в анонимной функции. Является ли это правильным модульным тестом? я могу узнать больше в этом модульном тесте? Может ли кто-нибудь помочь мне, я новичок в тестировании с жасмином
это помогло мне много спасибо – badaboum
, когда я изменить мой массив '$ scope.textes.push 'к объекту, подобному ' $ scope.textes = {source: source, text: text} 'и при попытке получить доступ к тексту свойства внутри единичного тестового файла, например' expect (scope.textes.text) .toBe (ожидается) ; 'У меня проблема, потому что свойство scope.textes.text имеет то же значение, что и ожидаемая переменная. любые идеи ?? мне нужно использовать область. $ digest() после flush() для синхронизации области? – badaboum
Нет, $ digest не нужен, так как все будет позаботиться о вас во время HTTP-запроса. Это может быть проблема равенства. 'toBe' ожидает, что значение будет точно таким же, или в экземпляре объектов, для объектов, которые будут _same instance_. Если вы клонируете/копируете и это _looks_ одинаково, но это другой экземпляр, тест завершится неудачно. Если вы ожидаете того же самого точного экземпляра, и он не работает, просто пройдите через свой код и посмотрите, где вы поступили неправильно. – HackedByChinese