Tests unitaires de la sortie de $sce.trustAsHtml Angulaire

Je suis en train d'écrire un RESTE d'application dans Angulaire et je veux écrire des tests unitaires pour elle (bien sûr!). J'ai un contrôleur qui permet d'obtenir une liste de messages de blog à partir d'un service REST json et met l'résumés dans le $champ d'application, afin que je puisse les afficher dans la vue.

Au premier abord, les messages de blog ont été simplement les afficher en tant que texte ie <p>Blog body</p>, plutôt que de rendu comme HTML analysée, jusqu'à ce que j'ai découvert que vous pouvez utiliser ng-bind-html en collaboration avec le $sce service. Cela fonctionne à présent bien en termes d'afficher les messages de blog correctement.

Le problème se pose lorsque les tests unitaires. Je suis en train de simuler une réponse json avec le code HTML, puis test que mon contrôleur est correctement traiter avec le HTML. Voici mon code:

Contrôleur

.controller( 'HomeCtrl', function HomeController( $scope, $http, $sce ) {
    $scope.posts = {};
    $http.get('../drupal/node.json').success(function (data) {
        var posts;
        posts = data.list;

        for(var i = 0; i < posts.length; i ++) {
            posts[i].previewText = $sce.trustAsHtml(posts[i].body.summary);
            posts[i].created = posts[i].created + '000'; //add milliseconds so it can be properly formatted 
        }
        $scope.posts = posts;
    });
})

de test de l'unité

describe('HomeCtrl', function() {
    var $httpBackend, $rootScope, $sce, createController;

    beforeEach(inject(function ($injector) {
        //Set up the mock http service responses
        $httpBackend = $injector.get('$httpBackend');

        //Get hold of a scope (i.e. the root scope)
        $rootScope = $injector.get('$rootScope');
        //The $controller service is used to create instances of controllers
        var $controller = $injector.get('$controller');

        $sce = $injector.get('$sce');

        createController = function() {
            return $controller('HomeCtrl', {
                '$scope': $rootScope
            });
        };
    }));

    it('should get a list of blog posts', function() {
        var rawResponse = {
            "list": [
                {
                    "body": {
                        "value": "\u003Cp\u003EPost body.\u003C\/p\u003E\n",
                        "summary": "\u003Cp\u003ESummary.\u003C\/p\u003E\n"
                    },
                    "created": "1388415860"
                }
            ]};
        var processedResponse = [{
                "body": {
                    "value": "\u003Cp\u003EPost body.\u003C\/p\u003E\n",
                    "summary": "\u003Cp\u003ESummary.\u003C\/p\u003E\n"
                },
                "created": "1388415860000",
            previewText: $sce.trustAsHtml("\u003Cp\u003ESummary.\u003C\/p\u003E\n")
        }];

        $httpBackend.when('GET', '../drupal/node.json').respond(rawResponse);
        $httpBackend.expectGET("../drupal/node.json").respond(rawResponse);
        var homeCtrl = createController();
        expect(homeCtrl).toBeTruthy();
        $httpBackend.flush();
        expect($rootScope.posts).toEqual(processedResponse);
    });
});

Quand je lance le biais de la Karma lanceur de test, j'obtiens la réponse suivante:

Chrome 31.0.1650 (Windows) home section HomeCtrl should get a list of blog posts FAILED
    Expected [ { body : { value : '<p>Post body.</p>
    ', summary : '<p>Summary.</p>
    ' }, created : '1388415860000', previewText : { $$unwrapTrustedValue : Function } }          ] to equal [ { body
: { value : '<p>Post body.</p>
    ', summary : '<p>Summary.</p>
    ' }, created : '1388415860000', previewText : { $$unwrapTrustedValue : Function } }     ].

Je soupçonne que le problème est dû au fait que $sce.trustAsHtml retourne un objet contenant une fonction, plutôt qu'une chaîne de caractères.

Ma question est, tout d'abord, suis-je aborder ce problème dans le bon sens?

Deuxièmement, dans l'affirmative, comment dois-je aller sur l'évaluation de la sortie de $sce.trustAsHtml?