Question

J'ai la spécification de jasmin suivant:

describe "plugins", ->
    beforeEach ->
    @server = sinon.fakeServer.create()

    afterEach ->
    @server.restore()

    describe "reviewStatus", ->
    it "should attach dates to content", ->
      @server.respondWith("GET", "/GeneralDocument.mvc.aspx/GetDocumentParent?typeName=ncontinuity2.core.domain.Plan&documentParentUid=45f0bccb-27c9-410a-bca8-9ff900ab4c28d",
        [200, {"Content-Type": "application/json"},
        '{"ReviewDate":"22/09/2012","AcknowledgedDate":"05/07/2012"}'])   

      $('#jasmine_content').addReviewStatus('ncontinuity2.domain.Plan', "45f0bccb-27c9-410a-bca8-9ff900ab4c28")     

      @server.respond()

      expect($('#reviewDateTab').find("strong").eq(0).length).toEqual(1)

Le addReviewStatus est un plug-in jQuery je l'ai écrit:

do($ = jQuery) ->
    $.fn.extend
        addReviewStatus: (type, uid) ->
            ele = @

            reviewData = null           

            getJSON '/GeneralDocument.mvc.aspx/GetDocumentParent', {typeName: type, documentParentUid: uid}, 
                                (document) ->
                                    console.log('document = ' + document)
                                    compileTemplate(ele, document)
                                (response) ->
                                    showErrorMessage resonse.responseText
#etc., etc.

La méthode ci-dessus getJSON appels .ajax $ comme ceci:

function getJSON(url, params, ajaxCallBack, ajaxErrorHandler, excludeProgress){
    var e = (ajaxErrorHandler) ? ajaxErrorHandler : validationErrorCallBack;
    var s = (ajaxCallBack) ? ajaxCallBack : jsonCallBack;
    $.ajax({
        type: "GET",
        url: url,
        cache: false, 
        data: params,
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Ajax", "true");
            xhr.setRequestHeader("UseAjaxError", "true");
        },
        complete: function() {
        },
        success: s,
        timeout: _ajaxTimeOut,
        dataType: "json",
        error: e
    });
}

Le rappel de fonction anonyme de la méthode getJSON n'est pas tiré. Aussi l'appel à $ .ajax retourne une erreur 404 introuvable. Quelqu'un peut-il voir ce que je fais mal?

Était-ce utile?

La solution

SINON retourne fakeserver 404 si l'URL que vous avez appelé n'a pas de réponse attribuée.

Il semble que votre problème est que l'URL que vous appelez est pas le exactement un dans le paramètre RespondWith (). En outre, il peut y avoir une limite sur la longueur URL Sinon, pas sûr cependant.

Autres conseils

J'ai un problème similaire avec. Il semble être lié à la mise hors tension du cache dans l'appel AJAX. Je vais poster plus si je contourner. Vous pouvez essayer de désactiver le cache pour le test et voir si elle passe. Je ne sais pas pourquoi il a besoin que bien.

Ronan

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top