Ste*_*ven 0 php unit-testing mocking laravel
我正在使用 Laravel 并模拟 Facade 对象,例如
Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 42) );
var_dump(Confide::user()->id); // returns int(42)
Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 1) );
var_dump(Confide::user()->id); // returns int(42) but should be int(1)
Run Code Online (Sandbox Code Playgroud)
但是var_dump(Confide::user()->id);总是返回 42。尽管第二个应该返回,1因为我将其设置为1。
我究竟做错了什么?
Confide::shouldReceive('user')->atLeast(1)->andReturn(
(object) array('id' => 42),
(object) array('id' => 1)
);
Run Code Online (Sandbox Code Playgroud)
所以这必须至少运行一次。
第一个调用将返回一个带有 的对象id = 42,第二个以及任何后续调用将返回一个带有 的对象id = 1。
PS:我从来没有使用过嘲笑,我只是检查了它的文档http://docs.mockery.io/en/latest/reference/expectations.html
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |