所以我有这个构建器运行一个应该是公共的buildClass方法,它需要一些参数。
在我的测试中,我想完全删除这些参数,并使用PHPUnit中的Mock添加完全不同的东西。
所以:来自:
class ClassBuilder{
public function buildClass($id, $some, $vars){
$class = new Class($id, $some, $vars);
return self::getClass(db_Class, $class);
}
}
所以你可能会在这里得到我的想法,我想做一个模拟,所以它在那里做返回功能。
$myClassStub->getMock("ClassBuilder");
$myClassStub->->expects($this->any())
->method("buildClass")
->with($this->anything(), $this->anything())
->will($this->returnCallback("getClass"));
但我不知道它是如何运作的。这就是我的想法,但我根本不知道在哪里提出论据。请帮帮我,非常感兴趣。
/马库斯
答案 0 :(得分:3)
你可以省略->with($this->anything(), $this->anything())
exepct(如果它在那里)以确保你将至少2个参数传递给该函数。
除了你,我明白你想要回到另一个班级。在那种情况下,我建议做:
$yourClassToReturn = "..."; // create the class here
$myClassStub->getMock("ClassBuilder");
$myClassStub->expects($this->any())
->method("buildClass")
->with($this->anything(), $this->anything())
->will($this->returnValue($yourClassToReturn));