1

可能重复:
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'。如何才能做到这一点?

4

0 回答 0