dtyrxmoj20617 2016-09-26 11:40
浏览 38
已采纳

如何使用phpunit测试变量是否存在于函数中

I am writing Unit-Tests for a Class looking like this:

class example {

    public function __construct($param1, $param2) {
        $this->param1 = $param1
        $this->param2 = $param2
    }
}

Is it possible to test if $this->param1 and $this->param2 exists after the constructor is executed? I already googled for this but didn't found a valid answer to this. I tried it with the Assertion contain, but this didn't work too.

  • 写回答

3条回答 默认 最新

  • dongshao5573 2016-09-26 11:52
    关注

    If you want to see whether properties have been assigned the specified values in the resulting object, use Reflection class. In your example, if you properties are public:

    public function testInitialParams()
    {
        $value1 = 'foo';
        $value2 = 'bar';
        $example = new Example($value1, $value2); // note that Example is using 'Standing CamelCase'
        $sut = new \ReflectionClass($example);
    
        $prop1 = $sut->getProperty('param1');
        $prop1->setAccessible(true); // Needs to be done to access protected and private properties
        $this->assertEquals($prop2->getValue($example), $value1, 'param1 got assigned the correct value');
    
        $prop2 = $sut->getProperty('param2');
        $prop2->setAccessible(true);
        $this->assertEquals($prop2->getValue($example), $value2, 'param2 got assigned the correct value');
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 MATLAB间接平差计算
  • ¥50 nw.js调用activex
  • ¥15 数据库获取信息反馈出错,直接查询了ref字段并且还使用了User文档的_id而不是自己的
  • ¥15 将安全信息用到以下对象时发生以下错误:c:dumpstack.log.tmp 另一个程序正在使用此文件,因此无法访问
  • ¥15 速度位置规划实现精确定位的问题
  • ¥15 代码问题:df = pd.read_excel('c:\User\18343\Desktop\wpsdata.xlxs')路径读不到
  • ¥15 为什么视频算法现在全是动作识别?
  • ¥15 编写一段matlab代码
  • ¥15 用Python做岩石类别鉴定软件
  • ¥15 关于调取、提交更新数据库记录的问题