içinde başka bir mock tarafından döndürülen sahte kullanma Ben phpspec
(phpunit
gelen) yeniyim ve başka bir mock tarafından döndürülen bir alay davranışını ayarlama sorunları var.phpspec
Guzzle
istemcisinin etrafında bir sarıcı sınıfı oluşturuyorum ve yanıtın çıktısını kontrol etmek istiyorum.
function it_gets_response_status_code(Client $client, Url $url, Response $response)
{
$this->beConstructedWith($client);
$url->__toString()->willReturn('http://example.com');
$data = ['foo' => 'bar'];
$response->getStatusCode()->willReturn(200);
$client->request('POST', $url, ['form_params' => $data])->willReturn($response);
$this->post($url, $data);
assert($this->getResponseStatusCode() === 200); // Failing! :(
}
ve benim sınıfında karşılık gelen işlevler: Burada
Spec varpublic function post(Url $url, array $data)
{
$this->response = $this->client->request('POST', (string) $url, ['form_params' => $data]);
}
public function getResponseStatusCode()
{
return $this->response->getStatusCode();
}
iddia başarısız ve bu durum kodu ne olduğunu kontrol zaman yerine o, görüyorum integer 200, bu bir PhpSpec\Wrapper\Subject
örneğidir. Burada neyi özlüyorum?
Ben arama yaptım ve googled ama phpspec başka bir aldatmaca tarafından döndürülen sahte kullanma hakkında kaynakları bulamıyorum. Bunun sebebinin bir kod kokusu mu olduğunu merak ediyorum. Öyleyse, bunu nasıl farklı bir şekilde yapabileceğimi görmekten memnuniyet duyarım (şu anda kodu nasıl basit ve farklı bir şekilde tutabildiğimi göremiyorum).