如果您正在測試一個像下面那樣的計數函數,那麼在一個函數中爲函數測試多個事情,是否認爲是「正確」或「錯誤」,而不是每個測試都具有測試函數?在單個測試中斷言多個條件,還是分成多個測試?
function testGetKeywordCount() {
$tester = $this -> getDatabaseTester($this -> CompleteDataFile);
$tester -> onSetUp();
$KeywordID = 0;
$this -> setExpectedException('InvalidArgumentException');
$this -> keyword -> getKeywordCount($KeywordID,'Active');
$KeywordID = 1;
$this -> setExpectedException('InvalidArgumentException');
$this -> keyword -> getKeywordCount($KeywordID,'InvalidStatus');
$this -> assertEquals(1, $this -> keyword -> getKeywordCount($KeywordID,'Active'));
$tester -> onTearDown();
}
如果我理解正確,那麼您會說它更容易,但在一個測試用例中擁有更多場景的「正確」程度卻更低。 如果這意味着您將多個場景放入一個測試用例中,因爲製作多個測試用例的工作太多了,我會說:抽象它,讓它更容易,更乾燥來製作另一個場景。 測試也是編程imho和應該做或多或少相同的原則,如DRY。 – 2010-01-31 21:17:15