【发布时间】:2014-01-31 02:18:34
【问题描述】:
我刚刚开始将RedBean 用于一个小型 PHP 网页项目。我正在为我的每个课程构建单元测试。我不确定如何在单元测试中模拟 RedBean。
问题:如何模拟 RedBean 类以支持单元测试?
【问题讨论】:
标签: php unit-testing redbean
我刚刚开始将RedBean 用于一个小型 PHP 网页项目。我正在为我的每个课程构建单元测试。我不确定如何在单元测试中模拟 RedBean。
问题:如何模拟 RedBean 类以支持单元测试?
【问题讨论】:
标签: php unit-testing redbean
这就是我所做的。到目前为止,它似乎工作得很好。我能够对我的模型进行单元测试,并且我已经通过静态 RedBean 函数调用进行了隔离:
这里是一些示例测试代码:
$db = M::mock( 'BeanDatabase' );
$bean = M::mock( 'Bean' );
$factory = M::mock( 'EntityFactory' );
$term_bean = M::mock( 'Bean' );
$term = M::mock( 'Term' );
$db->shouldReceive( 'dispense' )
->once( )
->andReturn( $bean );
$db->shouldReceive( 'find_all' )
->once( )
->with( 'term', 'WHERE termcategory_id = 5' )
->andReturn( array( $term_bean ) );
$factory->shouldReceive( 'create_entities_from_beans' )
->once( )
->with( array( $term_bean ) )
->andReturn( $term );
【讨论】: