|
|
1
250
抽象类的单元测试并不一定意味着测试接口,因为抽象类可以有具体的方法,而这些具体的方法是可以测试的。 在编写一些库代码时,拥有希望在应用层中扩展的特定基类并不罕见。如果你想确保库代码经过测试,你需要对抽象类的具体方法进行UT。 就我个人而言,我使用PHPUnit,它有所谓的存根和模拟对象来帮助你测试这类东西。 直接从 PHPUnit manual :
Mock对象为您提供了几件事:
|
|
|
2
39
需要注意的是,从PHP 7开始支持 anonymous classes 已添加。这为您提供了为抽象类设置测试的额外途径,该途径不依赖于PHPUnit特定的功能。
|
|
|
3
39
这个问题问得好。我也一直在找这个。
重要提示:请注意,这需要PHPUnit> 3.5.4.有 a bug 在以前的版本中。 要升级到最新版本:
|
|
|
4
1
Eran,你的方法应该有效,但这与在实际代码之前编写测试的趋势背道而驰。 我建议对所讨论的抽象类的非抽象子类的所需功能编写测试,然后编写抽象类和实现子类,最后运行测试。 你的测试显然应该测试抽象类的定义方法,但总是通过子类。 |
|
|
5
1
Nelson的回答是错误的。 抽象类并不要求它们的所有方法都是抽象的。 实现的方法是我们需要测试的方法。 你能做的就是在单元测试文件上创建一个假存根类,让它扩展抽象类,只实现所需的东西,当然,没有任何功能,然后进行测试。 干杯。 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 11 月前 |
|
|
Reelie · C#11-通过抽象类在接口中静态抽象成员? 1 年前 |
|
Denis Steinman · 如何从内部命名空间为类创建别名?复制 1 年前 |
|
|
vimal raj · javascript中类的执行顺序 2 年前 |
|
|
Max · 如何使用抽象/接口类的向量作为函数参数? 2 年前 |
|
|
timurichk · 我的类不重写抽象方法compareTo 7 年前 |