Mockery Runtime Partial Mock 构造函数参数

Mockery 有三种 partial mock: runtime, generated and proxy。Generated 在 runtime 之前实现的,通过生成代码替换原类的方式,mock掉指定的方法(method)。是目前不推荐的方式,因为:

  1. 不够灵活,需要提供构造函数参数,这常常造成不必要的麻烦,需要进一步mock掉构造函数中的逻辑,也非常脆弱,如果任意细节发生变动
  2. 因为要替换掉原类,考虑到 Test Suit一起运行,需要使用 @runTestsInSeparateProcesses 来标记,拖慢了运行速度

文档中没有提及一点:Runtime Partial Mock也可以指定构造函数参数:

$mock = \Mockery::mock('MyClass', [$arg1, $arg2])->makePartial();

这其实是标准 mock 功能,所以作者没有在文档中体现。所以没有必要使用 Generated partial mock。

你可能感兴趣的:(Mockery Runtime Partial Mock 构造函数参数)