我一直在阅读关于无模拟测试的文章,总的来说,我喜欢它.然而,当包含一些第三方类时,我一直在为该怎么做而苦苦挣扎.例如,如果我们有这样的类:
<?php
use External\ThirdPartyService;
use External\ThirdPartyException;
class AdapterForExternalService implements OurInterface
{
private ThirdPartyService $external;
public function __construct(ThirdPartyService $external)
{
$this->external = $external;
}
public function something(): int
{
try {
return $this->external->someMethod();
} catch (ThirdPartyException $e) {
return 1;
}
}
}
我知道如何通过嘲笑外部类来测试它,但有可能不嘲笑它吗?
如果嘲弄在这里是不可避免的,那么如果ThirdPartyService类是最终的呢?