如何确定单元测试的测试用例?

Ric*_*haw 11 unit-testing

我刚刚进入单元测试,并编写了一些简短的测试来检查名为isPrime()的函数是否正常工作.

我有一个测试,检查函数是否有效,并以一些数字和预期返回值的形式提供一些测试数据.

我应该测试多少?我如何决定测试哪个?这里最好的做法是什么?

一种方法是生成1000个素数,然后循环遍历它们,另一种方法是选择4或5并测试它们.什么是正确的做法?

Lie*_*ost 10

我也被告知,每次发现错误时,都应该编写一个测试来验证它是否已修复.无论如何,这对我来说似乎很合理.


Bil*_*ard 9

你想检查边缘情况.你的方法能够处理的素数有多大?这取决于您使用的表示(类型).如果你只对小数(在数论中使用的真正相对术语)素数感兴趣,你可能使用int或long.在您选择的表示中测试一些最大的素数.一定要检查一些非素数.(这些更容易独立验证.)

当然,您还需要测试一些小数字(素数和非素数)以及一些中间范围内的数字.少数几个应该是充足的.另外,请确保针对超出有效输入范围的数字抛出异常(或返回错误代码,无论您的偏好).

  • @badbadboy测试边缘情况的原因通常就是bug存在的地方 - 测试的目的是揭露错误. (2认同)