Я пытаюсь написать модульный тест для функции, которая немедленно загружает объект из другого класса, который использует вход для функции в качестве параметра. Я новичок в тестировании модулей php и не нашел ничего, что могло бы решить мою проблему. Несколько причин, которые у меня были, не привели к тому, что использовали инжектор и пытались найти отражение.Проверка модуля PHP Внешний вызов статического метода из другого класса
кода Я пытаюсь написать модульный тест для является:
public static function isUseful($item) {
$objPromo = MyPromoCodes::Load($item->SavedSku);
if (!is_null($objPromo)
&& ($objPromo->PromoType == MyPromoCodes::Interesting_Promo_Type)) {
return true;
}
return false;
}
Моей попытка насмешливого это:
public function testIsUseful() {
$injector = $this->getMockBuilder('MyPromoCodes')
->setMethods(array('Load'))
->getMock();
$objPromo = $this->getMock('MyPromoCodes');
$objPromo->PromoType = 'very interesting promo type';
$injector->set($objPromo, 'MyPromoCodes');
$lineItem1 = $this->getDBMock('LineItem');
$this->assertTrue(MyClass::isUseful($lineItem1));
}
однако это не работает, потому что нет никакого набора метода для этого объекта ....
Не уверен, что еще попробовать, любая помощь будет оценена по достоинству.
Вы можете посмотреть на отражение. https://secure.php.net/manual/en/book.reflection.php –