У меня есть метод, который принимает в список коллекцию объектов. Идея заключается в том, что метод будет проверять определенное поле CoverArt
в каждом из переданных в него объектов и, если свойство CoverArt
имеет значение null, пустую строку или пустое пространство, он устанавливает значение по умолчанию. Если свойство CoverArt
не является нулем, пустой строкой или пробелом, оно просто возвращает ту строку, которая уже есть.
//checks a list of stories for cover art and sets cover art to a default if it is null
public string CheckIfCoverArtIsNullForStoryList(List<Story> stories)
{
foreach (var story in stories)
{
if (story.CoverArt == null || story.CoverArt == "" || story.CoverArt == " ")
{
return story.CoverArt = "default-book.png";
}
return story.CoverArt;
}
return "";
}
То, что я пытаюсь сделать, - это создать модульный тест, который проверит, работает ли этот метод или нет, но мне трудно пытаться сравнить два списка. Что не так с моим кодом?
[TestMethod]
[Description("Tests list of stories for null cover art")]
public void TestingStoryListCoverArtMethodWithValidInput()
{
List<Story> StoryListActual = new List<Story>()
{
new Story()
{
CoverArt = "Lord of the Rings.png"
},
new Story()
{
CoverArt = "Johnny Appleseed.jpeg"
},
new Story()
{
CoverArt = "The Great Gatsby.jpg"
},
new Story()
{
CoverArt = "Happy Gilmore.gif"
}
};
List<Story> CoverArtExpected = new List<Story>()
{
new Story()
{
CoverArt = "Lord of the Rings.png"
},
new Story()
{
CoverArt = "Johnny Appleseed.jpeg"
},
new Story()
{
CoverArt = "The Great Gatsby.jpg"
},
new Story()
{
CoverArt = "Happy Gilmore.gif"
}
};
helper.CheckIfCoverArtIsNullForStoryList(StoryListActual);
for (var i = 0; i < StoryListActual.Count; i++)
{
for (var j = 0; j < CoverArtExpected.Count; j++)
{
Assert.AreEqual(StoryListActual[i].CoverArt, CoverArtExpected[j].CoverArt);
}
}
}
Мой модуль не проходит тестирование с этим сообщением.