我使用业力,茉莉花为角度编写单元测试。试着写:
expect(item).toEqual(jasmine.any(Boolean));
但得到:
Expected true to equal <jasmine.any(function Boolean() { [native code] })>.
毫米..也许我做错了什么)还是在这种情况下编写价值测试的另一种方式:
if (true or false) - 通过,如果有其他 - 失败
我使用业力,茉莉花为角度编写单元测试。试着写:
expect(item).toEqual(jasmine.any(Boolean));
但得到:
Expected true to equal <jasmine.any(function Boolean() { [native code] })>.
毫米..也许我做错了什么)还是在这种情况下编写价值测试的另一种方式:
if (true or false) - 通过,如果有其他 - 失败
我认为您需要的是一个像这样的自定义匹配器:
toBeBoolean : function () {
return {
compare : function (actual, expected) {
return {
pass : (typeof actual === 'boolean'),
message : 'Expected ' + actual + ' is not boolean'
};
}
};
}
也可以:
expect(item).toMatch(/true|false/);
我希望您的代码按预期工作,但显然在这种情况下,茉莉花的行为有点奇怪。
我会向您推荐以下解决方法:
expect(typeof item).toEqual('boolean');
对我来说,标记的解决方案是不正确的。至少不是我期望的那样使用它。我是这样做的:
jasmine.addMatchers({
toBeBoolean: function () {
return {
compare: function (actual, expected) {
return {
pass: typeof actual === 'boolean',
message: 'Expected ' + actual + ' is not boolean'
};
}
};
}
});
因为您没有传递预期值,而只是传递了实际值。所以你会调用它的方式是:
expect(true|false).toBeBoolean();