كيفية اختبار المعلمة الثانية في كائن وهمي PHPUnit

StackOverflow https://stackoverflow.com/questions/311485

  •  10-07-2019
  •  | 
  •  

سؤال

وهذا هو ما قلته:

$observer = $this->getMock('SomeObserverClass', array('method'));
$observer->expects($this->once())
         ->method('method')
         ->with($this->equalTo($arg1));

ولكن الطريقة يجب أن تأخذ معلمتين. أنا اختبار فقط أن المعلمة الأولى يتم تمريرها بشكل صحيح (كما ARG1 $).

وكيف اختبار المعلمة الثانية؟

هل كانت مفيدة؟

المحلول

وأعتقد أن طريقة للقيام بذلك هي:

$observer->expects($this->once())
     ->method('method')
     ->with($this->equalTo($arg1),$this->equalTo($arg2));

أو

$observer->expects($this->once())
     ->method('method')
     ->with($arg1, $arg2);

إذا كنت بحاجة إلى إجراء نوع مختلف من التأكيد على وسيطة 2ND، يمكنك أن تفعل ذلك أيضا:

$observer->expects($this->once())
     ->method('method')
     ->with($this->equalTo($arg1),$this->stringContains('some_string'));

إذا كنت بحاجة للتأكد من بعض حجة يمر تأكيدات متعددة، استخدم logicalAnd ()

$observer->expects($this->once())
     ->method('method')
     ->with($this->logicalAnd($this->stringContains('a'), $this->stringContains('b')));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top