针对每个场景使用Jasmine测试用例
test cases using Jasmine for each scenario
我正试图为我的排序程序编写一个jasmine单元测试。。我刚开始写茉莉花和测试用例。。在下面提供我的代码。。。你们能告诉我怎么用小提琴演奏吗。。。
http://jsfiddle.net/YYg8U/
var myNumbersToSort = [-1, 2, -3, 4, 0.3, -0.001];
function getClosestToZero(numberSet) {
var i = 0, positiveSet = [], positiveClosest = 0;
for (i = 0; i < numberSet.length; i += 1) {
positiveSet.push(numberSet[i] >= 0 ? numberSet[i] : numberSet[i] * -1);
}
positiveClosest = Math.min.apply(Math, positiveSet);
return numberSet[positiveSet.indexOf(positiveClosest)];
}
alert(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 );
} );
} );
你可以考虑更多的测试用例。测试任何积极和消极的行为,并尝试思考边缘案例。请记住,测试不仅是为了证明您的代码目前正在运行,而且是为了确保它在未来的开发过程中不会中断。
可能的边缘情况:
- 应该返回的数字是数组中的第一个或最后一个
- 数组中的
undefined
值(或NaN
、Infinity
…) - 具有相同绝对值的数字(例如
-0.01
和0.01
)
相关文章:
- 你好,这是测试用例,我必须在函数中传递n个参数
- 如何为以下角度函数编写单元测试用例
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- 因果报应并没有执行测试用例
- 运行茉莉花测试用例
- 如何阻止量角器在失败时运行进一步的测试用例
- 从FORM访问HTML元素的JavaScript函数的单元测试用例
- Regex单词边界(退格)测试用例
- 针对每个场景使用Jasmine测试用例
- JavaScript/jQuery-脚本不起作用-添加&删除类,合并数组-测试用例
- 你如何为 HTML 输出编写测试用例
- 如何在 eclipse 中为 angularjs 测试和创建测试用例
- Casperjs 多个测试用例
- 不同功能的摩卡测试用例
- 量角器在不使用browser.sleep的情况下编写更干净的测试用例
- 为什么jquery正则表达式每次返回不同的测试用例
- 如何在摩卡的测试用例中调用另一个测试用例
- 请建议如何为以下angularjs代码编写Jasmine测试用例
- 匿名函数的jasmine测试用例
- 在Webstorm 11中使用jasmine运行/debug node.js测试用例