मेरी वेबसाइट पर एक उन्नत खोज होगी। लोग वहां जा सकते हैं और एक एंटीटी (कार, उदाहरण के लिए) के बारे में खोज सकते हैं। मैंने कुछ परीक्षण किए हैं जो खोज पैरामीटर के आधार पर परिणामों की संख्या की जांच करते हैं। मुझे लगता है कि मुझे कौन से परीक्षण लिखना चाहिए, फिर मैं इसे लिखता हूं, फिर मैं परीक्षण डेटाबेस में डेटा जोड़ता हूं। लेकिन यहां मुद्दा आता है। जब मैं डेटाबेस में नए मान डालता हूं तो मेरे पुराने परीक्षण टूट जाते हैं। ऐसा इसलिए है क्योंकि मैं रिकॉर्ड्स की संख्या की जांच कर रहा हूं ...टीडीडी: एक खोज का परीक्षण कैसे करें?
<?php defined('SYSPATH') or die('No direct access allowed!');
class Search_Test extends PHPUnit_Extensions_Database_TestCase
{
/**
* @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
*/
public function getConnection()
{
$pdo = new PDO('mysql:dbname=db_test;host=127.0.0.1', 'root', null);
return $this->createDefaultDBConnection($pdo, 'db_test');
}
/**
* @return PHPUnit_Extensions_Database_DataSet_IDataSet
*/
public function getDataSet()
{
$fixture = realpath(dirname(__FILE__).'/../data/fixture.xml');
return $this->createXMLDataSet($fixture);
}
public function numberOfResultsDataProvider()
{
return array(
array(1, null, null, 1),
array(2, null, null, 3),
array(3, null, null, 0),
array('abc', null, null, 5),
array(null, 1996, 2003, 3),
array(null, 1996, 1999, 2),
array(null, 2002, 2003, 1),
array(null, 1500, 1800, 0),
array(null, 2003, 2003, 1),
array(null, null, 2005, 4),
array(null, 1996, null, 4),
array(null, null, null, 4),
array(null, 2003, 1996, 0),
array(null, 'abc', 2003, 4),
array(null, '1996', '1999', 2),
array(2, 2003, 2005, 2),
array(null, null, null, 4),
);
}
/**
* @dataProvider numberOfResultsDataProvider
*/
public function testNumberOfResults($brandId, $startYear,
$endYear, $numberOfResults
) {
$search = ORM::factory('search');
$search->setBrand($brandId)
->setYearRange($startYear, $endYear);
$results = $search->results();
$this->assertEquals($results->count(), $numberOfResults);
}
}
?>
क्या यह सामान्य है? जब मैं नए परीक्षण करता हूं तो क्या मेरे पुराने परीक्षण तोड़ने चाहिए?
क्या मेरे परीक्षण डेटा से बाध्य होना चाहिए?
मेरी खोज में बहुत से पैरामीटर हैं और इन्हें एक ही रूप (दृश्य) में उपयोग किया जाएगा। क्या मुझे प्रत्येक पैरामीटर के लिए खोज परीक्षण करना चाहिए या क्या मुझे एक साथ परीक्षण करना चाहिए? क्या मुझे इसे अधिक परीक्षण कक्षाओं में विभाजित करना चाहिए?
धन्यवाद।
अच्छा सवाल है, लेकिन शायद यह http://programmers.stackexchange.com के लिए बेहतर होगा। – Maxpm