关于sql:在Brownfield应用程序中实施单元测试的首要任务是什么?

关于sql:在Brownfield应用程序中实施单元测试的首要任务是什么?

What are the first tasks for implementing Unit Testing in Brownfield Applications?

您是否首先重构SQL? 您的建筑? 还是你的代码库?
您会更改语言吗? 您丢掉所有东西并从头开始吗? [不重构]


我正在将单元测试添加到大型的传统意大利面条代码库中。

我的方法是,当被要求解决问题时,我尝试围绕与当前任务相关的部分代码库创建一个新包装器。这个新的包装器是使用TTD开发的(首先编写测试)。有时会调用未经单元测试的旧代码。在其他时候,我会为现有模块制作一个新副本,并开始对其进行严重的破坏。有时我会从头开始重写功能。

但是,由于我对其进行了相当良好的测试,因此我感到可以控制。

我发现此代码库是经过大量复制和粘贴而开发的,一旦我理解了某个特定部分,并从中提取了一些功能(首先进行测试)...函数通常在许多其他地方都可用,因此用我自己的,经过单元测试的库替换旧代码的比率增加了。

我没有(也没有权限)尝试重写代码或将测试添加到当前问题未解决的部分代码(通常是我要修复的错误),但是我确实具有相当积极的主动态度触及任何可能相关的事物。

更新:Penguinix问:"您使用哪种语言?您建议使用特定的测试工具吗?"

现在我在……呃……腮腺炎!但是,同样的原理在任何地方都适用。

MinUnit改变了我对UT的理解:http://www.jera.com/techinfo/jtns/jtn002.html

当我看到MinUnit时,这对我来说是一个"禅"的时刻。它消除了我对单元测试的误解,因为单元测试是一个复杂的事情,需要复杂的OO框架等。我了解到UT只是在编写大量测试。您可以在3分钟内用自己喜欢的任何语言编写自己的"线束"。只是去做。


这确实取决于代码库的状态...是否有大量类?一类的大方法?这些课程紧密结合吗?配置是负担吗?

考虑到这一点,我建议阅读"有效使用旧版代码",找出问题并应用建议。


推荐阅读

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    未知软件异常应用程序错误解决方案

    未知软件异常应用程序错误解决方案,,我有很多朋友的电脑未知软件异常应用程序错误的问题,对于异常未知的软件异常中的应用一般提示(0xc00000

    小米手机安装的应用程序包在哪里

    小米手机安装的应用程序包在哪里,,问题: 下载小米手机系统的安装文件在哪里 答案uff1a 下载应用程序包位置:SD卡>下载。 (摘自:小米手册:米

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的