我不知道这是否有效,但我在文档或类似的博客中找不到任何有关如何执行此操作的信息:
我想测试我的班级 A ,其中包含一些类 B 的函数调用:
class A {
function foo() {
B::doSomeThings();
}
}
如果不使用真正的类 B ,我想模拟这个类。如果我单元测试我的对象A我只找到模拟这个对象的解决方案,如:
$mockA = $this->getMockBuilder('\A')->setMethod('foo')->getMock();
$mockA->expects($this->once())->method('foo')->will(...)
是否可以仅在类 B
中模拟 doSomeThings()功能答案 0 :(得分:1)
有一些解决方法
http://miljar.github.io/blog/2014/01/29/phpunit-testing-static-calls/
或者您可以移动到A函数中的其他方法,例如
class A {
function foo() {
$this->doSomeThings();
}
function doSomeThings() {
B::doSomeThings();
}
}
并在A类中模拟doSomeThings()函数