【发布时间】:2014-01-23 16:39:03
【问题描述】:
是时候回答一些我似乎无法找到答案的看似简单的问题了。
我正在使用 TDD (PHP) 开发一个库。据我了解,在使用 TDD 时,您不应该在没有首先编写失败测试来保证它的情况下编写任何生产代码。
我有一个 mutator 方法,它将数据附加到具有私有可见性的数组中。我应该如何测试?我应该只测试各种访问器吗?访问器的测试是否应该覆盖 mutator 方法?
是否可以通过测试来测试访问器和修改器,还是应该将它们分开测试?
我的库需要一个依赖项,我将通过构造函数注入它。哪些测试代码可能会提示我编写构造函数代码?
很抱歉提出如此幼稚的问题。我一直在研究 TDD,并认为我已经弄清楚了,但是当我尝试使用它时,所有这些小问题都会浮现在脑海中。显然,我想确保尽我所知有效地实施它。
也许我太严格了?也许使用模拟隐式测试注入并检查使用注入类的方法的期望?
我知道这些问题可能是主观的,答案可能基于人们的意见,但我对此没有意见。我只想以一种有意义且有效的方式开始。
非常感谢。
【问题讨论】:
-
只是我对 3 的回答:“也许使用模拟隐式测试注入并检查使用注入类的方法的期望?”是的,我就是这样做的。
-
就我个人而言,我将 setter+getter 一起测试,因为没有其他方法(我不会尝试访问私有属性,如果实现更改,该测试会崩溃)。但我很想知道是否存在替代/更好的方法。
标签: php unit-testing dependency-injection tdd