Директива модульного тестирования с контроллерами, использующими жасмин - PullRequest
0 голосов
/ 25 июня 2018

Я новичок в модульном тестировании Jasmine, и я впервые пытаюсь протестировать директиву с контроллером. Структура моей директивы и контроллера немного отличается, чего я не видел ни в одном из блогов или вопросов, связанных со стековым потоком. Я изо всех сил пытаюсь получить доступ к функции _testSampleFunction () для тестирования в моих тестовых примерах. Недостатком здесь является то, что я не могу изменить архитектуру директивы, и я хочу написать контрольные примеры соответственно. Любая помощь будет оценена!

Ниже показано, как определяется мой контроллер:

(function () {
'use strict';

angular.module('myApp',[])
        .directive('myDirective', myDirective);

function myDirective()
{
        var directive ={
        template : '<div></div>',
        controller : myController,
        controllerAs : 'vm',
        scope: {},
        };

        myController.$inject =['$scope'];
        return directive;

    function myController($scope)
    {
        var vm = this;
        init();

        function init()
        {
            vm.TestSampleFunction = _testSampleFunction;
        }

        function _testSampleFunction()
        {
            return 'my directive';
        }

    }

}})(window.angular);    

Вот плункер (spec.js включен): Демо Плункер

Заранее спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

В директивных тестах используется настоящий контроллер, поэтому вам не нужно выполнять настройку контроллера в тесте.

Я обновил ваш Plunker с примером теста через представление, но также и как получить контроль над контроллером.

Директивные тесты полезны, так как вы знаете, что контроллер и представление связаны правильно - я в основном (кроме странного случая, когда я не могу), проверяю все через представление (например, нажимаю на что-то на странице и проверяю, что вид обновляется соответственно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...