For example, such a test:
[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();
}
Or it will be better to create tests with few known words like "testword1", "alsotestword2", "notword3" and check code for correctness with them?
 
    