Модуль тестирования функции, но функция ничего не возвращает, когда я запускаю unit test
.Функция ничего не вернет
Это функция:
public string FindUniqueWords(Dictionary<string, int> dictionary)
{
string uniqueWord = "";
foreach (KeyValuePair<string, int> pair in dictionary) //loop through the occurenceDictionary
{
uniqueWord += (pair.Key + ", ");
}
uniqueWords.Text = uniqueWord;
return (uniqueWord);
}
И это испытание
[TestMethod]
public void CheckUniqueWordsAreFoundTest()
{
string actual, expected;
Form1 frm1 = new Form1();
actual = frm1.FindUniqueWords(unitTestOccurenceDictionary);
expected = "hello, world, i, am, god, of, this, ";
Assert.AreEqual(expected, actual);
}
блок А я посылаю этот словарь функции
public class UnitTest1
{
public Dictionary<string, int> unitTestOccurenceDictionary = new Dictionary<string, int>();
public void Add(string key, string value)
{
unitTestOccurenceDictionary.Add("hello", 1);
unitTestOccurenceDictionary.Add("world", 2);
unitTestOccurenceDictionary.Add("I", 1);
unitTestOccurenceDictionary.Add("am", 1);
unitTestOccurenceDictionary.Add("god", 1);
unitTestOccurenceDictionary.Add("of", 1);
unitTestOccurenceDictionary.Add("this", 1);
}
Когда я бегу блок испытание не удается и показывает, что
actual = <>
Я не уверен, что вызывает это, но я чувствую, что это тупо простая ошибка, как недостающая ссылка, но при запуске моего кода ошибок нет.
В вашей функции он добавляет ', ', за которым следует пробел для каждого слова (включая последнее слово). Таким образом, ожидаемый результат будет «hello, world, i, am, god, of, this». –
Где вы называете 'Добавить'? На основе того, что я вижу, словарь будет пустым, в результате чего вывод будет пустой строкой. Есть и другие проблемы, но это было бы причиной для пустого 'фактического'. Словарь не упорядочен, поэтому нет гарантии, что вы получите предметы в том порядке, в котором они были добавлены. –
@mikez Вы были правы, что исправили это благодаря –