我一直在阅读 PHPUnit 手册,其中有一部分我无法理解,涉及到模拟 traits(图 9.18)。
在他们的例子中,有一个具体的方法返回抽象方法的值(最终在测试中被模拟)。
不幸的是,这两个句子的解释并没有说明其有何用处!就我所知,测试显然会通过,但在实际情况下,抽象方法将不会被模拟,因此它实际上会失败?
我们应该删除抽象方法,并替换掉在具体方法中对其的调用吗?如果是这样,那测试有什么意义呢?为什么我们要用没有被真正使用的抽象方法来混淆 traits 呢?
我的最终问题是,为什么测试在测试中写成可以通过,而如果在实际使用中,它却会失败?如果有人能帮我理解这个问题,我将不胜感激!
在他们的例子中,有一个具体的方法返回抽象方法的值(最终在测试中被模拟)。
不幸的是,这两个句子的解释并没有说明其有何用处!就我所知,测试显然会通过,但在实际情况下,抽象方法将不会被模拟,因此它实际上会失败?
我们应该删除抽象方法,并替换掉在具体方法中对其的调用吗?如果是这样,那测试有什么意义呢?为什么我们要用没有被真正使用的抽象方法来混淆 traits 呢?
我的最终问题是,为什么测试在测试中写成可以通过,而如果在实际使用中,它却会失败?如果有人能帮我理解这个问题,我将不胜感激!