【发布时间】:2019-02-19 07:59:52
【问题描述】:
我需要通过重载来模拟 CurrencyEnum,但这不是结束,因为我需要向这个模拟添加接口。 这不起作用:
Mockery::mock('overload:'.CurrencyEnum::class);
错误:(..) must be an instance of \BaseCurrency, instance of \CurrencyEnum given。
我查看了Mockery\Container::mock,但我不知道该怎么做。
例如我想测试TestingClass::first() 方法
class CurrencyEnum implements BaseCurrency
{
/* methods */
}
class TestingClass
{
public function first(string $currencySymbol)
{
$abc = 'some_string';
return $this->second($abc, new CurrencyEnum($currencySymbol));
}
private function second(string $abc, BaseCurrency $currency)
{
/* code */
}
}
【问题讨论】:
-
添加更多描述也许你不需要重载
-
你想在这个例子中测试什么?为什么要模拟这种硬依赖?
标签: php unit-testing phpunit mockery