Я тестирую логический поток, издеваясь над классом и тестируя вызов функции.
function() setUp()
{
$this->shipping_method = $this->getMockBuilder(Wc_Trincargo_Shipping_Method::class)
->getMock();
$this->shipping_method->set_post_data([
'woocommerce_wc-trinicargo-shipping_waybill_password' => 'xxx',
'woocommerce_wc-trinicargo-shipping_waybill_username' => 'xxxx',
'woocommerce_wc-trinicargo-shipping_waybill_customer_id' => uniqid(),
'woocommerce_wc-trinicargo-shipping_waybill_pickupdays' => 2
]);
}
set_post_data
— это общедоступный метод, который задает защищенное свойство.
Позже я тестирую вызов другого метода, который должен проверить указанное свойство protected. Я знаю, что они говорят, что вы не можете издеваться над защищенными и частными свойствами, но если свойства устанавливаются общедоступными методами... разве это не должно работать?
unit test
. Ваш тест не пройден, потому что некоторые другие зависимости не работают должным образом. Тестируйте их отдельно и издевайтесь над ними здесь. Если вы не можете изолировать зависимости, скорее всего, архитектура неверна. - person Royal Bg   schedule 17.10.2017