当前位置: 首页 > 知识库问答 >
问题:

PHPUnit如何获得mocked方法的真实返回值?

景昊焜
2023-03-14

    namespace Updater\Model;

    class TestClass
    {
        public function testFunction(){
            return 12345;
        }
    }


    class DatabaseTest extends PHPUnit_Framework_TestCase
    {

         public function testMock(){
              $mock = $this->getMock('Updater\Model\TestClass', array('testFunction'));
              $mock->expects($this->once())->method('testFunction')

              // Call the Funciton.... here i would like to get the value 12345 
              $result = $mock->testFunction();
         }
    }

共有1个答案

葛飞扬
2023-03-14

AFAIK,您不能用PHPUnit本机模拟来实现这一点。有一个名为Mockery的嘲笑库可以做到这一点:

http://docs.mockery.io/en/latest/reference/expectations.html

查找passthru()方法。

 类似资料:
  • 我试图模拟一些方法调用,但不幸的是我一直返回null。你能帮我指出我可能出错的地方吗?我正在使用time(). thenBack(),我觉得我正确地模拟了返回变量。事先非常感谢。我是JUnit和Mockito的新手,所以如果我错过了任何明显的东西,我很抱歉。 ServiceTest.java Service.java

  • 最简单的例子:我有以下方法: 我想模拟此方法以返回传递的参数作为结果。例如: 我知道我可以硬编码这种行为,但我希望它是通用的。

  • 我正在努力理解如何在Javascript中获得一个承诺的值,以便能够检查它是真的还是假的。 如果我console.log有效变量,它将返回以下内容: 在我的if语句中,我试图检查允诺值是否为真,但我不知道如何访问该值:/谁能告诉我如何检查该值吗? 谢谢

  • 问题内容: 我正在使用以下PHP代码获取访问者的IP地址: 但是, 当 访客 使用Proxy时 ,我无法从访客那里获得真实的IP地址。在这种情况下,是否可以获取访客的IP地址? 问题答案: 试试这个PHP代码。

  • 我不确定我是否滥用了基于交互的测试,或者我是否做了一些概念上的错误。我正在开发一个Spring Boot应用程序(Kotlin),我的测试使用的是Spock/Groovy。 我有一个正在测试的类,它调用另一个服务来查询信息。被测试的类应该缓存结果。但是,我不能用返回值模拟一个方法并检查调用的次数,因为当我添加调用检查时,被模拟的方法总是返回null。 我创建了一个独立的示例,演示了这个问题。 前两

  • 我是新来的Laravel使用本地开发环境与家园尝试运行简单的测试 路由/网络。php: 运行phpunit返回404错误 vagrant@homestead:~/code/laravel$phpunit phpunit 6.4。3由塞巴斯蒂安·伯格曼和撰稿人撰写。 .F.3/3(100%) 时间:1.07秒,内存:10.00MB 有1次失败: 1) Tests\Feature\UserTest::