我正在開發一個小的解析器類TDD風格。下面是我的測試:刪除測試驅動開發中的重複
...
[TestMethod]
public void Can_parse_a_float() {
InitializeScanner("float a");
Token expectedToken = new Token("float", "a");
Assert.AreEqual(expectedToken, scanner.NextToken());
}
[TestMethod]
public void Can_parse_an_int() {
InitializeScanner("int a");
Token expectedToken = new Token("int", "a");
Assert.AreEqual(expectedToken, scanner.NextToken());
}
[TestMethod]
public void Can_parse_multiple_tokens() {
InitializeScanner("int a float b");
Token firstExpectedToken = new Token("int", "a");
Token secondExpectedToken = new Token("float", "b");
Assert.AreEqual(firstExpectedToken, scanner.NextToken());
Assert.AreEqual(secondExpectedToken, scanner.NextToken());
}
什麼是竊聽我是最後一個測試行使相同的代碼行,無論Can_parse_a_float()
和Can_parse_an_int()
。一方面,它正在行使一些東西,這兩種方法都不是:從源代碼字符串中,我可以得到幾個令牌。另一方面,Can_parse_a_float()
和Can_parse_an_int()
失敗,Can_parse_multiple_tokens()
也會失敗。
我覺得有利害攸關的4個目標:
- 我想我的測試表明我的
Parser
解析整數 - 我想我的測試表明我的
Parser
解析花車 - 我想我的測試表明,我的
Parser
可以解析幾個整數/浮點連續的數字 - 我想我的測試也可以很好地作爲文檔機制(!)
我向任何人分享他對如何更好地處理這種情況的意見的任何人提供餅乾。謝謝!
第三個測試用例不應該確保您的標記化工作嗎?在解析兩個標記(已經過測試)之前,可能會有一段未經測試的代碼將輸入拆分。 – 2011-03-05 19:02:21