我有我的茉莉花某些情況下的測試場景.. 但我無法獲得這三個場景的測試用例... 可以嗎告訴我該怎麼辦呢?應該返回的數字是陣列中的第一個或最後一個
- 應返回的數字是在該陣列 未定義值的第一個或最後一個陣列中(或NaN,無窮遠,...)\與 相同的絕對值號碼(例如-0.01和0.01)
提供我的小提琴太
var myNumbersToSort = [-1, 2, -3, 4, 0.3,1,-0.001];
function getClosestToZero(set) {
if(0 === set.length) return null;
var closest = Math.abs(set[0]), result = 0;
for(var i in set) {
var next = Math.abs(set[i]);
if(closest > next) {
result = i;
closest = next;
}
}
return closest;
}
document.getElementById('output').innerHTML = (getClosestToZero(myNumbersToSort));
茉莉
describe('getClosestToZero', function() {
it('finds a positive unique number near zero', function() {
expect(getClosestToZero([-1, 0.5, 0.01, 3, -0.2])).toBe(0.01);
});
it('finds a negative unique number near zero', function() {
expect(getClosestToZero([-1, 0.5, -0.01, 3, -0.2])).toBe(-0.01);
});
// your method actually doesn't pass this test
// think about what your method *should* do here and if needed, fix it
it('finds one of multiple identical numbers near zero', function() {
expect(getClosestToZero([-1, 0.5, 0.01, 0.01, 3, -0.2])).toBe(0.01);
});
});
看看代碼,我會想象你的測試沒有通過第二個測試,但應該通過第三個測試。這是因爲你比較並返回值的絕對值。所以第二個測試將返回0.01而不是-0.01 – cbayram
@cbayram:謝謝你的回覆..你可以編輯我的小提琴,以及如何通過第二次測試http://jsfiddle.net/YYg8U/15/ – user3102494