我已经使用karma load runner为我的angular 4应用程序编写了Jasmine测试。我期待该方法返回false但由于某种原因返回true。 不确定为什么?
测试1
it('should return false because the current item max value is less to the current min value', () => {
comp.domicileInfo.taxAssesment.items = [{maxSize: 30000000 , minSize: 30000000 , values: [2 , 2]}];
let isMax: boolean = comp.isMaxValid(comp.domicileInfo.taxAssesment.items , 1);
console.log(isMax);
console.log(comp.domicileInfo.taxAssesment.items);
expect(isMax).toBe(false);
});
方法
isMaxValid(currentItem: any, item_IDX: number) {
if (item_IDX === 0) {
return true;
}
if (+currentItem.maxSize <= +currentItem.minSize ) {
return false;
}
return true;
}
测试2
方法:请注意数组中的第一个元素将包含minSize:0和maxSize:20000000
isMinValid(currentItem: any, item_IDX: number) {
if (item_IDX === 0) {
return true;
}
let previousItem = this.domicileInfo.taxAssesment.items[item_IDX - 1];
if (+currentItem.minSize !== +previousItem.maxSize ) {
return false;
}
return true;
}
fit('should return true because the current item min value is equal to the previous max value', () => {
comp.domicileInfo.taxAssesment.items = [{maxSize: 30000000 , minSize: 20000000 , values: [2 , 2]}];
let isMax: boolean = comp.isMinValid(comp.domicileInfo.taxAssesment.items[0] , 1);
console.log(isMax);
console.log(comp.domicileInfo.taxAssesment.items);
expect(isMax).toBe(true);
});
答案 0 :(得分:0)
您的意思是使用数组中的项而不是数组本身吗?
let isMax: boolean = comp.isMaxValid(comp.domicileInfo.taxAssesment.items[0], 1);
由于此错误,您的方法是尝试将undefined
值转换为int
,从而产生NaN
值。在JavaScript中,NaN
s are never equal to each other。
这就是使用TypeScript类型系统非常有用的原因。