bekommt Ihre Funktion ein Element von DOM. In Ihren Tests müssen Sie also ein solches Element im DOM erstellen, das Ihre Funktion verwenden wird.
describe('get_user_input',() => {
beforeEach(() => {
window.document.cookie = 'test_case=';
$("<div class='selector'>test</div>").appendTo("body");
yourFunction();
});
it('should update the cookie with users input if the input is NOT undefined',() => {
expect(window.document.cookie).toEqual('test_case=test');
});
});
Aber bevorzugte Lösung wäre von DOM-Manipulation von Ihrer Funktion, um loszuwerden, und macht diese Funktion einfach prüfbar und weniger Kopplung.
function yourFunction(user_input) {
window.document.cookie = 'user_input=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT';
if (typeof user_input !== "undefined") {
var date = new Date;
user_input = user_input.replace(/(\r\n|\n|\r)/gm, ' ');
date.setDate(date.getDate() + 1);
window.document.cookie = "user_input=" + user_input + ';path=/;expires=' + date.toGMTString();
}
}
Und ein Test für ihn:
describe('get_user_input',() => {
let user_input;
beforeEach(() => {
window.document.cookie = 'test_case=';
user_input = "test";
yourFunction(user_input);
});
it('should update the cookie with users input if the input is NOT undefined',() => {
expect(window.document.cookie).toEqual(`test_case=${user_input}`);
});
});
Oder noch mehr - window.document.cookie
aus der Funktion bewegen und berechneten Wert zurück. Setzen Sie den zurückgegebenen Wert dann auf window.document.cookie
woanders in Ihrer App.
function yourFunction(cookie, user_input) {
let res = 'user_input=;path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT';
if (typeof user_input !== "undefined") {
var date = new Date;
user_input = user_input.replace(/(\r\n|\n|\r)/gm, ' ');
date.setDate(date.getDate() + 1);
res = "user_input=" + user_input + ';path=/;expires=' + date.toGMTString();
}
return res;
}
describe('get_user_input',() => {
let cookie;
let user_input;
let output;
beforeEach(() => {
cookie = 'test_case=';
user_input = "test";
output = yourFunction(cookie, user_input);
});
it('should update the cookie with users input if the input is NOT undefined',() => {
expect(output).toEqual(`test_case=${user_input}`);
});
});
Machen Sie Ihre Funktion so einfach wie möglich. Single Verantwortung rockt!
Danke! Dieser hat mir geholfen! – AKr