Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TDD:构造函数注入和变异测试_Php_Unit Testing_Dependency Injection_Tdd - Fatal编程技术网

Php TDD:构造函数注入和变异测试

Php TDD:构造函数注入和变异测试,php,unit-testing,dependency-injection,tdd,Php,Unit Testing,Dependency Injection,Tdd,是时候问一些看起来更简单的问题了,我就是找不到答案 我正在用TDD(PHP)开发一个库。据我所知,在使用TDD时,您不应该在没有首先编写一个失败的测试来保证它的情况下编写任何生产代码 我有一个mutator方法,它将数据附加到具有私有可见性的数组中。我应该如何测试它?我应该只测试各种访问器吗?访问器的测试是否应该包括mutator方法 测试访问器和变异器可以吗,还是应该是单独的测试 我的库需要依赖项,我将通过构造函数注入依赖项。什么测试代码可能会提示我编写构造函数代码 很抱歉问了这么粗鲁的问题。

是时候问一些看起来更简单的问题了,我就是找不到答案

我正在用TDD(PHP)开发一个库。据我所知,在使用TDD时,您不应该在没有首先编写一个失败的测试来保证它的情况下编写任何生产代码

  • 我有一个mutator方法,它将数据附加到具有私有可见性的数组中。我应该如何测试它?我应该只测试各种访问器吗?访问器的测试是否应该包括mutator方法

  • 测试访问器和变异器可以吗,还是应该是单独的测试

  • 我的库需要依赖项,我将通过构造函数注入依赖项。什么测试代码可能会提示我编写构造函数代码

  • 很抱歉问了这么粗鲁的问题。我一直在研究TDD,并认为我已经解决了所有问题,但当我尝试利用它时,所有这些小问题都浮现在我的脑海中。显然,我想确保我能有效地实施它,并尽我所知

    也许我太严格了?也许使用模拟隐式测试注入,并检查使用注入类的方法的期望值

    我理解这些问题可能是主观的,答案可能是基于人们的意见,但我同意这一点。我只是想以一种有意义和有效的方式开始


    非常感谢。

    我将一起测试setter和getter方法,因为这是迄今为止最简单的方法,无需更改数组的可见性,而您不应该这样做。注入的类将通过这些测试进行隐式测试


    一般来说,试着从另一个用户的角度来编写单元测试,这个用户试图使用被测试的类。您需要想一想,这个类应该做什么,或者它的契约是什么(即,这个类持有用户可以添加和删除的对象数组),然后编写测试以确保它满足该契约。然后,编写足够的代码以通过测试。

    我对3的回答是:“也许注入是使用模拟隐式测试的,并检查使用注入类的方法的期望?”是的,我就是这样做的。就我个人而言,我一起测试setter+getter,因为没有其他方法(我不会尝试访问私有财产,如果实施发生变化,测试将失败)。但我有兴趣知道是否存在替代方案/更好的方法。非常好。感谢您的澄清。:)