社区
研发管理
帖子详情
谁能告诉我单元测试(UT)的原则
ichyw
2001-08-23 03:37:14
我觉得在真正的工程项目中,UT的作用有限。
请问:
1。全局变量多的程序是不是不容易作UT
2。对A函数做UT,而在A函数里调用B函数,现在要测试B函数调用失败的情况,
请问能否另外写一个C函数来代替B函数
int C()
{
return -1;
}
但是B函数里其它的操作被取消了,这有可能改变系统的正常流程,使测试变得
没有意义,怎麽办?
...全文
305
2
打赏
收藏
谁能告诉我单元测试(UT)的原则
我觉得在真正的工程项目中,UT的作用有限。 请问: 1。全局变量多的程序是不是不容易作UT 2。对A函数做UT,而在A函数里调用B函数,现在要测试B函数调用失败的情况, 请问能否另外写一个C函数来代替B函数 int C() { return -1; } 但是B函数里其它的操作被取消了,这有可能改变系统的正常流程,使测试变得 没有意义,怎麽办?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FireKylin
2001-08-23
打赏
举报
回复
1.UT与全局变量多没有直接关系,因为你做的是测试一个单元。但是全局变量多意味着你的
模块耦合性强,即使每个单元都没有问题了,也可能因为函数间协调不好出现问题。这样的
问题有时候表现出来会很怪异。
2.一般来说,Unit本身无法直接运行,都需要main函数。notyy的分析我也很赞同,你的b函数
一定是更改了某些全局变量。这样的话,你可以在main函数的开头把这些全局变量先赋上
期望的值,然后写一个函数名与B相同,函数体与你说的C相同的函数。这样做控制非常灵活,
可以任意修改测试数据(那些全局变量和B函数的返回值)。当然这些也不是一成不变的,
因为程序是多种多样的,具体问题还得具体分析。
我所说的用于UT的main函数和b函数通常称为桩函数。
notyy
2001-08-23
打赏
举报
回复
什么样的项目是真正的工程项目?呵呵。
1、全局变量多有可能预示设计上有些问题。单元测试实际上就是一次模拟对被测试的方法的调用,如果全局变量会影响到这个调用,那可能真的要好好考虑考虑。
2、a函数调用b函数。先对b函数做单元测试,然后对a函数做单元测试。
你举的例子里说明b函数里有些方法操作了一些全局变量,并且这些全局变量控制着正常的流程。
先想想有没有办法改变这种情况,优化一下设计。然后,既然你是测试b失败的情况,当然可能有b里的所有操作都失败的情况。
其实就你所描述的情况,很需要对b做很详细的测试。
工作多年后我更了解了
UT
的重要性
同时充足的
UT
是保证重构正确性的有效手段,有了足够的
UT
防护,才能放开手脚大胆重构已有代码,工作多年后更能发现
UT
的重要。
单元测试
在敏捷的开发理念中,覆盖全面的自动化测试是添加新特性和重构的必要前提。...
Go
单元测试
基本介绍
单元测试
(Unit Tests,
UT
) 是一个优秀项目不可或缺的一部分,是对软件中的最小可测试部分进行检查和验证。在面向对象编程中,最小测试单元通常是一个方法或函数。
单元测试
通常由开发者编写,用于验证代码的一个很小...
unittest
单元测试
框架详解
单元测试
是一项对技术要求很高的工作,只有白盒测试人员和...
单元测试
框架会
告诉
我们。 2.提供丰富的断言方法 当我们进行功能测试时,测试用例需要有预期结果。当测试用例的执行结果与预期结果不一致时,判定测试用例
【编码心得】
单元测试
的那些事
单元测试
是指对软件中的最小可测试单元(如函数、方法、类等)进行隔离测试的过程。这些单元在测试过程中被单独运行,以确保它们的行为符合预期。
单元测试
是软件开发中最低级别的测试活动,旨在发现模块内部存在的...
软件测试——测试用例的编写
产品编号-
UT
-
单元测试
项名-
单元测试
子项名-XXX 用例标题 简单描述,需要用概括的语言描述用例的出发点和关注点,
原则
上每个用例的标题不能重复 所属项目 当前测试用例所在测试大类、被测试需求、被测模块、被测...
研发管理
1,268
社区成员
28,284
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章