量角器测试很难且令人困惑(至少对我而言)。
我有以下
`SomeTestFile.spec.ts`
describe('A test: ', () => {
beforeEach(() => {
....
}
it ('Should validate a label', async() => {
await helper.validateALabel(label);
}
....
}
然后在助手类中:
helper.ts
export class Helper {
....
public validateLabel(label: String): Promise<void> {
expect(label).toBe('This is the string of the label');
}
....
}
所以问题是我需要等待expect(label).toBe(...)
吗?
应该是
await expect(label).toBe(...)
这是否很好(如果可以,为什么我会不断收到“无承诺的拒绝”警告)?
expect(label).toBe(...)
答案 0 :(得分:2)
您可以这样做:
CLIENT -> SERVER: EHLO www.absqc.abc
SMTP ERROR: EHLO command failed: CLIENT -> SERVER: HELO www.absqc.abc
SMTP ERROR: HELO command failed:.
答案 1 :(得分:1)
在步骤定义中使用期望是一种很好的做法。您可以从helper类中解析值,并在步骤定义中进行一些声明,并使测试步骤通过或失败。
`SomeTestFile.spec.ts`
describe('A test: ', () => {
beforeEach(() => {
....
}
it ('Should validate a label', async() => {
await expect(helper.validateALabel(label)).toBe('This is the string of the label');
}
....
}
helper.ts
export class Helper {
....
function validateLabel(label) {
return new Promise((resolve, reject) => {
return resolve('This is the string of the label');
})
}
....
}
答案 2 :(得分:1)
不是。
您必须等待诺言并比较结果。
// example promise function
const validateALabel = (label) => new Promise(r => r(true))
it ('validates a label', async () => {
const valid = await validateALabel(label)
expect(valid).toBeTruthy()
})
在这种情况下,您似乎在这里定义了错误的返回类型:
public validateLabel(label: String): Promise<void> {
expect(label).toBe('This is the string of the label');
}
这实际上不返回Promise<void>
,而仅返回void
,因此您根本不需要异步/等待