需要建议单元测试不可测试的代码

时间:2016-09-02 17:50:02

标签: php unit-testing

我有点过分了。

我们有一些由需要重构的开发人员编写的PHP生产代码。但是,它没有测试。所以,我害怕重构它。

我一直在编写单元测试,但很多代码依赖于$ _GET params,它应该使用Request类(它是在Lumen中构建的)。

因此,运行单元测试是不可能的。

我有什么选择?我可以编辑代码,以便不再使用$ _GET,但代码的结构方式,这样做风险很大。

有趣的是,我们想编写测试以便我们可以重构,但似乎为了能够编写测试,无论如何我都必须进行一些重构。

任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

我会尝试从集成或验收测试开始。然后你有一些东西可以让你有一点信心来重写代码,这样就可以用单元测试来测试它。不幸的是,可以编写无法进行单元测试的代码。

看看“进行中测试”。

答案 1 :(得分:0)

只是一些疯狂的想法。是否有可能以抽象请求类型的方式编写单元测试,我的意思是编写一个基类,比如说RequestBase,然后是一个包含Request类(LumenRequest)的子类,以及另一个子类(LegacyRequest) )包装$ _GET,以便它们具有相同的接口。使用旧代码,您可以使用LegacyRequest运行测试,并使用新代码,使用LumenRequest运行它