【发布时间】:2026-01-17 08:40:01
【问题描述】:
我使用的是 PHP 5.3 和 SimpleTest,但欢迎提供更一般的答案。每个插件都将是一个扩展抽象类的类......我如何测试这个接口是否正常工作?我必须创建几个插件并测试它们吗?还是有更满意的方式?
例如,想象写一些东西来代表金钱。用户可以使用不同的货币类别对其进行扩展。
抽象类Money
{
私有静态 $symbol;
私人静态 $num_decimals;公共函数 __construct($amount) { ...}
公共函数 __toString() { ... }
}
那么插件应该是这样的:
GBPound 类扩展了 Money
{
私有静态 $symbol = "£";
私有静态 $num_decimals = 2;
}
也许我可以模拟多重继承,扩展 UnitTest 类和 money 类,但这可能会变得一团糟!
这太难了,因为单元测试就是测试接口,而类本身就是插件接口。
【问题讨论】:
-
有什么问题?为什么不能只测试
GBPound类? -
因为我想测试创建
GBPound类或任何其他类组合的能力。如果该班级在安哥拉有用户,我希望他们能够使用该界面创建一个ANKwanza班级。 -
为什么还需要英镑? GBPound 并没有那么特别,不能仅用 Money 来表示。只需制作构造函数所需的 $symbol 和 $num_decimals 参数并将它们存储为非静态即可。此外,您可能希望将 Money 重命名为 Currency。
-
这只是一个例子。我的实际插件界面与钱无关,只是解释起来要复杂得多。
标签: php unit-testing abstract-class simpletest