我一直对重写工作代码持怀疑态度-移植代码也不例外。但是,随着TDD和自动化测试的到来,重写和重构代码更加合理。
有谁知道是否存在可用于移植旧代码的TDD工具?理想情况下,您可以执行以下操作:
- 为通过的旧代码编写语言不可知的单元测试(如果发现错误,则失败)。
- 在失败的其他代码库上运行单元测试。
- 用通过测试的新语言编写代码,而无需查看旧代码。
另一种选择是将步骤1分为“用语言1编写单元测试”和“将单元2移植到语言2”,这将显着增加所需的工作量,并且很难证明是否要在维护旧代码库之后停止维护端口(也就是说,您无法在此代码库上获得持续集成的好处)。
编辑:值得注意在StackOverflow上的此问题。
expect
。如果您拥有使用stdin和stdout与管道进行通信的Unix风格的旧系统,那么可以肯定使用该工具。实际上,使用任何脚本语言进行测试也将非常容易。
legacy language x
到完成的fancy new language y
。我并不是想暗示有关Unix的任何信息!
expect
实施测试。