Cookies 使用Jest测试安全cookie值
以前我有Jest代码来测试非安全cookie的值。看起来是这样的:Cookies 使用Jest测试安全cookie值,cookies,https,jestjs,Cookies,Https,Jestjs,以前我有Jest代码来测试非安全cookie的值。看起来是这样的: Cookie.set('myToken', values.user.token, { path: '/', expires: new Date(new Date().getTime() + TOKEN_DURATION), secure: true }); expect(Cookie.get('myToken')).toBe('tokenvalue') (本例中的Cookie正在使用js Cookiea
Cookie.set('myToken', values.user.token, {
path: '/',
expires: new Date(new Date().getTime() + TOKEN_DURATION),
secure: true
});
expect(Cookie.get('myToken')).toBe('tokenvalue')代码>
(本例中的Cookie
正在使用js Cookie
api)
但是,我尝试更新我设置cookie的方式,并添加了secure
标志并将其设置为true
。当测试运行时,Jest无法再看到此cookie
最好的测试方法是什么
我看过这样的问题
我还测试了代码,并在浏览器中检查是否设置了安全标志。所以这只是一个测试问题。我设置cookie的代码如下所示:
Cookie.set('myToken', values.user.token, {
path: '/',
expires: new Date(new Date().getTime() + TOKEN_DURATION),
secure: true
});
我在下面试了试,效果很好
import { * as cookies } from <...ur file where cookie logic is implementated>
import Cookies from 'js-cookie';
describe('cookies functionality', () => {
it('should set the cookie correctly', () => {
// create a mock function using jest.fn()
const mockSet = jest.fn();
// here we are trying to mock the 'set' functionality of Cookie
Cookies.set = mockSet;
// call the set method of Cookies
cookies.set('key', 'value');
// check if the mock function gets called here
expect(mockSet).toBeCalled();
});
});
从导入{*作为cookie}
从“js cookie”导入cookie;
描述('cookies功能',()=>{
它('应该正确设置cookie',()=>{
//使用jest.fn()创建一个模拟函数
const mockSet=jest.fn();
//在这里,我们试图模拟Cookie的“set”功能
Cookies.set=mockSet;
//调用Cookies的set方法
cookies.set('key','value');
//检查是否在此处调用模拟函数
expect(mockSet).toBeCalled();
});
});
基本上,编写单元测试是为了测试我们正在测试的单元的逻辑。如果我们使用任何外部库,那么我们可以模拟它并测试它是否被正确调用。单元测试不应该为库代码的实际执行而烦恼,在我们这里的例子中,我们不应该在单元测试中为Cookie真正设置数据而烦恼。如果我们可以测试调用的cookies集/获取,那么它应该足够好。谢谢!这起作用了。你对如何测试这一点背后的想法的解释也非常清楚。这帮了大忙。很高兴我能帮上忙:)小补充:更容易喜欢jest.mock('js-cookie')代码>。