我刚刚开始使用RedBean来进行小型PHP网页项目。我正在为每个班级构建单元测试。我不确定如何在单元测试中模拟RedBean。
问题:如何模拟RedBean类以支持单元测试?
答案 0 :(得分:1)
这就是我所做的。到目前为止似乎工作得很好。我能够对我的模型进行单元测试,并且我已经通过静态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 );