可能重复:
PHPUnit 模拟对象和静态方法
单元测试和静态方法
我正在使用 PHPUnit 3.6.10,我似乎无法在文档中找到一个模拟静态方法的好例子。具体来说,我有一个带有方法 a() 的 A 类——称之为 A->a()——它调用 B::b() ,我需要模拟它的返回值。
class A {
function a() {
return B::b();
}
}
class B {
static function b() {
return 5;
}
}
a() 的测试函数应如下所示:
class A_Test {
function test_a() {
// what should the code look like here?
}
}
因为我们纯粹是测试 A->a() 返回 B::b(),所以我们不关心 B::b() 是如何工作的,所以我们可以模拟 B::b() 的返回值(例如,返回 'foo')并检查当我们调用 A->a() 时是否返回了 'foo'。如何才能做到这一点?