2017-08-29 30 views
1

我試圖在jsfiddle中模擬HTTP提取。我不確定我做錯了什麼,導致結果不等於模擬結果。在sinon中模擬HTTP提取

這裏是我的示例代碼:(你可以看到日誌的瀏覽器控制檯)。

http://jsfiddle.net/maryam_saeidi/yredb06m/7/

async function getUser(userId) {  
     var user = await fetch("http://ui-developer-backend.herokuapp.com/api/users/" + userId); 
    return user.json(); 
} 

mocha.setup("bdd"); 
chai.should(); 
var assert = chai.assert, 
     expect = chai.expect; 

describe('getUser()',() => { 
    let server; 

    beforeEach(function() { 
    server = sinon.fakeServer.create(); 
    }); 

    afterEach(function() { 
    server.restore(); 
    }); 

    it('should return a user.', async() => { 
    const response = await getUser(1); 
    console.log("response:", response); 
    }); 

    it('should return a user object', async() => { 
    const userId = 10; 
    server.respondWith("GET", "http://ui-developer-backend.herokuapp.com/api/users/" + userId,[200, { "Content-Type": "application/json" }, 
         '{ "id": "1", "username": "John", "avatar_url": "http://placekitten.com/g/300/300" }']); 
    const response = getUser(userId); 
    server.respond(); 
    response.then(function(result){ 
     console.log("result:",result); //The code doesn't get here 
     result.should.deep.equal({ "id": "1", "username": "John", "avatar_url": "http://placekitten.com/g/300/300" }); 
     }); 
    }); 

}); 

mocha.run(); 

回答