usox / hackmock
hacklang 的模拟框架
v1.4.1
2021-01-21 07:31 UTC
Requires
- hhvm: ^4.1
- facebook/fbexpect: ^2.3
- facebook/hack-codegen: ^4
- hhvm/hacktest: ^1.4|^2.0
- hhvm/hsl: ^4.1
- hhvm/type-assert: ^3.2|^4.0
Requires (Dev)
- hhvm/hhast: ^4.1
Suggests
- slack/hack-sql-fake: Database Testing library for Hacklang
README
HackMock
为 hacklang 创建模拟对象 - 真的。
注意
由于使用了 eval
,hackmock 可能在未来 hhvm 版本中停止工作。
什么功能正常?
- 严格模式
- 创建接口和具体类的模拟
- 定义基本方法期望(参数验证,返回值定义)
什么功能不正常?
- 其他所有功能,特别是涉及泛型等的罕见和/或未测试的案例。
use function Usox\HackMock\{mock, prospect}; class SomethingTest extends \Usox\HackMock\HackMock { public function testSomething() { $my_fine_class = mock(SomeInterface::class); prospect($my_fine_class, 'someMethodName') ->once() ->andReturn('some-fine-value'); prospect($my_fine_class, 'someOtherMethodName') ->andThrow(new \Exception('foobar')); } }