любая идея, почему sinon не производит объект ответа xml? - PullRequest
0 голосов
/ 14 октября 2019

что я использую mocha + sinonjs для модульного тестирования. До сих пор это работало хорошо, но теперь я пытаюсь запустить модульный тест, который должен дать xml-ответ на ajax-запрос. Это работает вплоть до того момента, когда я хочу запросить объект request.responseXML, который всегда имеет значение null, несмотря на то, что Sinon передал все необходимые параметры для анализа xml. Я добавил небольшой основанный на машинописи модульный тест, чтобы показать проблему.

describe('Sinon XML Problem', function () {
    it("must work with xml", function () {
        let FakeXMLHTTPequest = sinon.useFakeXMLHttpRequest();

        var requests = this.requests = [];
        FakeXMLHTTPequest.onCreate = function (xhr) {
            requests.push(xhr);
        };
        let xhr: any = new FakeXMLHTTPequest();
        requests[0].responseType = 'document';
        requests[0].open('GET', '/xmlhttprequest/xml', false);

        requests[0].onreadystatechange = function () {
            if (requests[0].readyState == 4) {
                expect(requests[0].responseXML != null).to.be.true;
            }
        };

        requests[0].send();

        requests[0].respond(200, {'Content-Type': 'text/xml'}, `
    <?xml version="1.0" encoding="utf-8"?>
    <partial-response>
        <changes>
            <update id="value_1"><![CDATA[<span id="out1">2</span>]]></update>
            <update id="javax.faces.ViewState"><![CDATA[j_id1:j_id3]]></update>
        </changes>
    </partial-response>
    `);

    })
});

результат запросов [0] .responseXML должен быть чем угодно, но не нулевым, но тест терпит неудачу с нулем в responseXML. Кто-нибудь знает почему?

...