는이 코드가 있습니다QUnit과 Sinon에서 쿠키를 모방하는 방법은 무엇입니까?
var CookieHelper = function() {
return {
GetCookie : function (cookieName) {
var cookieNameRequest = cookieName + "=";
var cookiesCollection = document.cookie.split(";");
for (var i = 0; i < cookiesCollection.length; i++) {
var cookieValuePair = cookiesCollection[i];
while (cookieValuePair.charAt(0) == " ") cookieValuePair = cookieValuePair.substring(1, cookieValuePair.length);
if (cookieValuePair.indexOf(cookieNameRequest) == 0)
return cookieValuePair.substring(cookieNameRequest.length, cookieValuePair.length);
}
return null;
},
DeleteCookie : function (cookieName) {
CookieHelper.SetCookie(cookieName, "", -1);
},
SetCookie : function (cookieName, cookieValue, cookieExpirationDays) {
var tmpDate = new Date;
if (cookieExpirationDays) {
tmpDate.setTime(tmpDate.getTime() + cookieExpirationDays * 24 * 60 * 60 * 1000);
var expires = "; expires=" + tmpDate.toGMTString();
} else {
// if cookieExpirationDays isn't set cookie will expire at the end of the day
var expirationTime = new Date(tmpDate.getFullYear(), tmpDate.getMonth(), tmpDate.getDate(), 23, 59, 59);
var expires = "; expires=" + expirationTime.toGMTString();
}
document.cookie = cookieName + "=" + cookieValue + expires + "; path=/;" + (location.protocol === "https:" ? "secure=true" : "");
}
};
}();
을 나는의 getCookie에 대한 단위 테스트를 작성해야합니다. 내가/스텁 document.cookie를 조롱 필요하지만 Sinon 및 QUnit 완전히 새로운 오전
QUnit.module('Cookie Helper Tests');
QUnit.test('GetCookie - returns no cookie', function(assert) {
var stub = sinon.spy(CookieHelper, 'GetCookie');
var cookieName = 'testCookieName';
var cookieValue = CookieHelper.GetCookie(cookieName);
assert.ok(cookieValue == null, 'returns no cookie');
});
:
나는 함께했습니다.
누군가 내가 잘못한 것을 설명해 줄 수 있습니까?
미리 감사드립니다.
Srdjan
, 아무 문제가 없다 :) 정확하게 알고 싶은 것은 무엇입니까? 스텁에서 응답을 반환하는 방법? 구체적으로 기재하십시오. – spilio
나는 document.cookie를 호출하기를 원하지 않는다. 이것은 브라우저마다 다르므로. –
그래서 문서 속성을 스텁하는 방법을 찾아야합니다. –