mardi 8 décembre 2015

Is it good to create random tests? [duplicate]

This question already has an answer here:

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?

Aucun commentaire:

Enregistrer un commentaire