嘗試首次使用Sinon,因爲它的假服務器功能讓我存根API響應。測試本身是爲摩卡書寫的Sinon假服務器不攔截請求
但是,假的服務器似乎不會攔截請求。
代碼:
describe('when integrated', function() {
var server;
beforeEach(function() {
server = sinon.createFakeServer();
});
afterEach(function() {
server.restore();
});
it('can send a message to the notification service', function() {
server.respondWith("POST", new RegExp('.*/api/notificationmanager/messages.*'),
[200,
{ "Content-Type": "application/json" },
'{ "messageId":23561}'
]);
var messageOnly = new PushMessage(initMessageObj);
var originalUrl = PushMessage.serverUrl;
messageOnly.setServerAPI("http://a.fake.server/api/notificationmanager/messages");
console.log("fake server is: ", server);
messageOnly.notify()
.then(function(response) {
messageOnly.setServerAPI(originalUrl);
return response;
})
.then(function(response) {
response.should.be.above(0);
})
console.log(server.requests);
server.respond();
})
});
作爲參考,PushMessage
是具有靜態屬性serverUrl
的對象。我只是將該值設置爲假的URL &,然後重置它。 notify()
函數使用request-promise-native
發送郵件消息到設置在PushMessage的靜態屬性中的serverUrl
。
什麼似乎發生,就是POST
請求最終被正確地試圖對的http://a.fake.server/api/notificationmanager/messages
的URL,從而導致錯誤的地址不存在...
任何想法,我做錯了...?謝謝!
爾加。從來沒有想過一起谷歌假服務器和節點...謝謝! –