【问题标题】:Create a Mock of a MyException创建一个 MyException 的模拟
【发布时间】:2015-04-08 09:52:42
【问题描述】:

这是我要测试的方法:

class a {
    public function method($args) {
        if($args == "xxx") {
            throw new MyException("Right Message");
        }
    }

问题是 Myexception.php 不可用,所以我应该创建一个 MyException 的模拟并重新定义异常,这是我的解决方案,但不起作用。谢谢

/**
     * @expectedException InvalidArgumentException
     * @expectedExceptionMessage Right Message     
     */
     public function testSubscribeCommunity(){
        $MyException = $this->getMockBuilder('MyException')
                ->setMethods(array('__construct'))
                ->setConstructorArgs(array('Right Message'))
                ->disableOriginalConstructor()
                ->getMock();
        $MyException->method('__construct')
                ->will($this->throwException(new InvalidArgumentException));
        $objectToTest = new A();        
        $objectToTest->method(null,$args);
    }

【问题讨论】:

  • 请提供更多信息,例如“不起作用”是指具体

标签: php exception mocking phpunit


【解决方案1】:

当你模拟一个对象时,你会创建它的一个特殊实例,但你不会让使用“new”创建的类的下一个实例成为模拟对象。所以在你的测试中抛出的异常是一个真正的 MyException 。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多