में PHPSpec कैचिंग टाइपररर मैं स्केलर प्रकार संकेत और PHP7 में सख्त प्रकार के साथ एक उदाहरण विधि का परीक्षण करना चाहता हूं। जब मैं कोई तर्क नहीं देता हूं, तो विधि को TypeError
फेंकना चाहिए। PHPSpec गंभीर त्रुटि लौट:PHP7
Uncaught TypeError: Argument 1 passed to Example::test
<?php
class Example
{
public function test(string $name)
{
$this->name = $name;
}
}
class ExampleSpec extends ObjectBehavior
{
function it_is_initializable()
{
$this->shouldHaveType('Test\Example');
}
function it_check_test_method_when_not_pass_argument()
{
$this->shouldThrow('\TypeError')->during('test');
}
}
शुरुआत में मैं घोषणा: declare(strict_types=1);
क्या गलत है? मैं TypeError
फेंकने का परीक्षण कैसे करूं?
तो अपवाद फेंक दिया गया है लेकिन बेकार है? या इसे फेंक दिया नहीं जा रहा है और यह होना चाहिए? – Will
विधि फेंक टाइपरर और मैं TypeError पकड़ना चाहता हूँ। मैं $- का उपयोग करना चाहता हूं-> चाहिए ('\ TypeError') -> ('test') के दौरान। पीएचपीएसपीसी में यह विधि काम करता है जब विधि अपवाद वापस करता है लेकिन TypeError नहीं। – Matrix12
क्या आप PHPSpec का नवीनतम संस्करण उपयोग कर रहे हैं? – Will