निम्न वर्ग को देखते हुए:PHPUnit: सत्यापित करना कि सरणी में दिए गए मान के साथ एक कुंजी है
<?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);
}
}
और यह टेस्टकेस:
<?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();
}
मैं $params
(जो एक सरणी है) को सत्यापित कैसे करूं और $Other->post()
पर पास किया गया है जिसमें 'key1' नामक एक कुंजी है 'मान 1' का मूल्य?
मैं सभी सरणी को सत्यापित नहीं करना चाहता - यह केवल एक नमूना कोड है, वास्तविक कोड में पास किए गए सरणी में बहुत अधिक मूल्य हैं, मैं वहां केवल एक कुंजी/मूल्य जोड़ी को सत्यापित करना चाहता हूं।
$this->arrayHasKey('keyname')
है जिसका उपयोग मैं यह सत्यापित करने के लिए कर सकता हूं कि कुंजी मौजूद है।
$this->contains('Value 1')
भी है, जिसका उपयोग यह सत्यापित करने के लिए किया जा सकता है कि सरणी में यह मान है।
मैं उन दोनों को $this->logicalAnd
के साथ भी जोड़ सकता हूं। लेकिन यह निश्चित रूप से वांछित परिणाम नहीं देता है।
अब तक मैं रिटर्नकॉलबैक का उपयोग कर रहा हूं, पूरे $ पैरा को कैप्चर कर रहा हूं और उसके बाद उस पर जोर दे रहा हूं, लेकिन क्या मैं शायद ऐसा करने का दूसरा तरीका हूं?
$ यह-> विशेषता (बाधा, मूल्य) जो मैं कर रहा हूं वह करने में सक्षम है, लेकिन यह सरणी पर काम नहीं करती है। –