首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >面试-测试值

面试-测试值
EN

Stack Overflow用户
提问于 2012-11-06 02:09:31
回答 2查看 733关注 0票数 0

好吧,让我们假设我有一个函数,它检查给定的数组中哪个是重复次数最多的数字。

然后需要测试这个函数,并且需要使用特定值进行测试,以确保函数正确工作(单元测试)-这些值是什么?我很困惑。

附注:为什么我需要使用这些值,为什么我不能直接调试代码,或者把它写在纸和笔上,看看结果应该是什么,然后把它与输出的值进行匹配?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-06 02:19:10

角落里的箱子。

**它能否应对负面影响**

代码语言:javascript
运行
复制
Array = [-5, -5, -5, 5, 5, 5, 5] expected : 5
Array = [-5, -5, -5, -5, 5, 5, 5] expected : -5

它如何处理不明确的情况?

代码语言:javascript
运行
复制
Array = [1,1,1,2,2,2] expected = ?? (See spec for expected)
Array = [1,2,3,4,5,6] expected = ??

它是如何处理任意大整数的

代码语言:javascript
运行
复制
Array = [999999999999999, 999999999999999, 999999999999999, -99999999999999999]
expected = 999999999999999;

它如何处理任意大的数组?

代码语言:javascript
运行
复制
Array = [0,0] + {i : 1 < i < 9999999999999, i is an int }
expected = 0; 

它如何处理空值?

代码语言:javascript
运行
复制
Array = null; 
expected = null; 

Array = [null, 1, 2, 3, 3, 3]
expected = 3;

Array = [null, null, null, 1, 2, 3, 3]
Expected = null or 3 depending on spec. 

为什么单元测试而不仅仅是调试?

1.)调试假设您知道错误已经存在。如果我们总是通过查看代码就知道所有的错误,那么我们根本就不需要测试,不是吗?

2.)通常,我们对函数规范中未定义的部分更感兴趣,而不是代码中的错误。你从来没有告诉过我如何处理数组中的空值...在api完成之前,您需要在您的规范中指定这一点

3.)对于这个特殊的函数,手工计算很容易。但是如果你在计算一个函数的雅可比矩阵的行列式呢?你不会真的想在纸上这么做吧?

4.)

票数 4
EN

Stack Overflow用户

发布于 2012-11-06 02:11:46

这些值是测试值。在您的示例中,您可能有一个出现频率最高的1,2,2,3数组,一个具有平局1,1,2,2,3的数组,以及一个空的array [],用于测试最有趣的边缘用例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13237860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档