Aşağıdaki sınıf göz önüne alındığında:
<?php
class Example {
private $Other;
public function __construct ($Other)
{
$this->Other = $Other;
}
public function query ()
{
$params = array(
'key1' => 'Value 1'
, 'key2' => 'Value 2'
);
$this->Other->post($params);
}
}
Ve bu testcase:
<?php
require_once 'Example.php';
require_once 'PHPUnit/Framework.php';
class ExampleTest extends PHPUnit_Framework_TestCase {
public function test_query_key1_value ()
{
$Mock = $this->getMock('Other', array('post'));
$Mock->expects($this->once())
->method('post')
->with(YOUR_IDEA_HERE);
$Example = new Example($Mock);
$Example->query();
}
Nasıl $params
doğrularım (ki bir dizidir) ve $Other->post()
'Değer 1' bir değeri vardır 'anahtarı1' adında bir anahtar içerir geçirilir?
Ben dizinin tüm doğrulamak istemiyorum - bu sadece bir örnek kod, gerçek kod geçirilen dizi daha bir çok değerler var, ben orada sadece tek bir anahtar / değer çiftini doğrulamak istiyorum.
Orada $this->arrayHasKey('keyname')
Ben anahtarının varolduğunu doğrulamak için kullanabilirsiniz.
Bu dizi değerine sahip olduğunu doğrulamak için kullanılabilecek, $this->contains('Value 1')
bulunmaktadır.
Ben bile $this->logicalAnd
ile iki birleştirmek olabilir. Ama tabii bu istenilen sonucu vermez.
Şimdiye kadar, returnCallback kullanarak bütün $ params yakalama ve daha sonra yapıyor asserts bu konuda, ama ne istediğinizi yapmak için başka bir yolu belki de var olmuştur?