我正在尝试运行类似这样的东西
describe('REGISTRATION', async () => {
const response = await axios.post(url, params);
});
我有一段代码,它的工作方式如下所示:
describe('REGISTRATION', () => {
// success registration, check expected fields
test('SUCCESS', async () => {
const response = await axios.post(url, params);
const { status, statusText } = response;
expect(status).toBe(200);
expect(statusText).toBe('OK');
const { jwt, user } = response.data;
expect(typeof(jwt)).toBe('string');
expect(user).toEqual({
id: expect.any(Number),
username: expect.any(String),
email: expect.stringMatching(emailRegExp),
});
});
});
这个可以工作,但是当出现错误时我没有得到错误的详细信息。 我会得到类似于:
expect(received).toEqual(expected) // deep equality
expect(user).toEqual({.......
我想使用async
来描述,是因为我想做类似于以下的操作:
describe('REGISTRATION', async () => {
const response = await axios.post(url, params);
const { status, statusText } = response;
const { jwt, user } = response.data;
test('id', () => {
expect(Number.isInteger(user.id)).toBe(true);
});
test('username', () => {
expect(typeof(user.username)).toBe('string');
});
test('email', () => {
expect(user.email).toEqual(expect.stringMatching(emailRegExp));
});
});
我希望在测试时能够详细了解每个错误,有没有人知道如何实现这一点,或者我想得太多了,还有其他的方法吗?
describe
内部还是外部?我不是指验证。 - undefinedtry{ let x = await somethingAsync() } catch(err){ ... }
来捕获它。这样一来,你就有不同层次处理错误的选项。另一种捕获错误的方式是:somethingAsync().catch(err => { .... })
。 - undefinedreceive, expected
而不是逐个显示。 - undefined