<分区>
比如这样的测试:
[Test]
public void Test_With_Many_Random_Words()
{
var randomWords = new string[100];
for (var i = 0; i < 100; ++i)
randomWords[i] = GenerateRandomWord();
var trie = new PrefixTrie();
for (var i = 0; i < 100; ++i)
trie.AddWord(randomWords[i]);
Assert.AreEqual(100, trie.CountOfWords);
foreach (var word in randomWords)
Assert.IsTrue(trie.ContainsWord(word));
}
private string GenerateRandomWord()
{
var random = new Random();
var builder = new StringBuilder();
var length = 1 + (random.Next()%100);
for (var i = 0; i < length; ++i)
{
var charCode = random.Next()%26;
builder.Append((char) ('a' + charCode));
}
return builder.ToString();
}
或者用“testword1”、“alsotestword2”、“notword3”等少数已知词创建测试并用它们检查代码的正确性会更好?