更改检测器测试、数据封装和功能运行所需的实际数据
Change-detector tests, data encapsulation and data actually necessary for a function to operate
这个问题受到这篇文章的启发:http://googletesting.blogspot.ru/2015/01/testing-on-toilet-change-detector-tests.html
简而言之,当我们更改函数中的接口时,它不鼓励我们编写中断的测试,迫使我们浪费时间重写每个调用以匹配新的签名。
如果我们考虑到上面的文章和指南,那么从重写函数是合乎逻辑的
void someFunc(int param1, int param2)
至
void someFunc(Object o)
事实上,该函数最初可能被称为:
somefunc(o.param1, o.param2);
现在它变成了
somefunc(o);
因此,传递一个对象而不是单独的params,为我们提供了一些保护,以防我们可能需要o.param3在以后的函数中使用。但是这是否与职能部门不应收到超过其运作所需信息的指导方针相矛盾?我当然记得几年前读过这样的文章。
如果一个对象有这个函数永远不需要的param4和param5,那么根据这个准则,传递整个对象似乎是不正确的。。。
正确的思考方式是什么?我才刚刚开始真正进入单元测试,像这样的事情让我有点困惑。此外,我有点觉得我完全误解了那篇文章的要点。。。
关于一个param的想法是,应该将params包装到struct/class中。如果函数中的参数较少,那么要测试的排列也较少。查看Robert C.Martin的《清洁代码》一书。
相关文章:
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 将包含二进制数据的 QByteArray 传递到按值运行
- 类方法 - 数据结构中 For 循环的运行时错误
- LLVM:在运行时更新数据结构
- 在 MySQL 中运行 HTTP 服务器以从客户端接收数据
- CPP 数据类型运行时溢出
- 只知道运行时的数据类型.如何将数据详细信息隐藏到使用它们的其他类
- 与shared_ptr相比,更小的运行时数据结构和更快的代码可实现独特的_ptr
- 将数据保存在.cpp上,并在 .h 上运行
- 如果输入变量的数据类型与以前不同,如何使我的循环仍然正常运行?
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- 由于数据类型在运行时变化而卡在设计上
- 我想用 c++ 运行一个 vtk 示例,但我不知道如何导入所需的数据
- C 编程:在循环时运行 2 并从 loop1 获取数据的随机结果
- 如何在运行时从平面缓冲区获取数据值和数据类型
- LLVM:如何在运行时跟踪非类型语言的 Value* 的数据类型?
- 如何在以下C程序中计算运行时间内存和最大数据存储器使用情况
- 如何制作一个为程序的每个运行中存储不同数据类型的向量
- 丢失的数据包仅在第一次运行中发生
- 运行长度编码算法[数据压缩].