Jestjs 直接访问Jest相等性测试
使用Jest,您可以轻松地对两个对象进行深入比较:Jestjs 直接访问Jest相等性测试,jestjs,Jestjs,使用Jest,您可以轻松地对两个对象进行深入比较: expect(requestBody).toEqual(expectedRequest); 有没有办法在不触发断言的情况下以编程方式使用相同的相等性测试?差不多 const matches = isEqual(requestBody, expectedRequest); 这对于在单元测试中编写谓词非常有用。例如,要使AngularsHttpTestingController监视特定的请求主体,只需编写 httpController.ex
expect(requestBody).toEqual(expectedRequest);
有没有办法在不触发断言的情况下以编程方式使用相同的相等性测试?差不多
const matches = isEqual(requestBody, expectedRequest);
这对于在单元测试中编写谓词非常有用。例如,要使AngularsHttpTestingController
监视特定的请求主体,只需编写
httpController.expectOne(request => isEqual(request.body, expectedRequest));
Jest matcher函数没有公开。如果需要进行深度相等性检查,可以直接使用Lodash/下划线
isEqual
可以捕获断言错误:
isEqual = (a, b) => {
try {
expect(a).toEqual(b);
return true;
} catch (err) {
if (e.matcherResult)
return false;
throw err;
}
};
Jest可以通过定义具有访问
equals
的权限来与HttpTestingController
集成,这是一个很好的答案!特别感谢链接到Jest源代码。我想现在我将使用catch断言错误实现,并在我更经常需要它时切换到lodash实现。