Я хочу протестировать фрагмент кода, который возвращает объект.
Я использую NUnit и в тестовом классе я пишу метод, чтобы проверить, работает ли мой метод нормально ...
[Test]
public void GetMyObjectFromLog()
{
string _xmlFilePath = @"C:\XmlFile.xml";
MyObjectParser _myObjectParser = new MyObjectParser();
MyObject _mockMyObject = new MyObject
{
Title = "obj",
Name = "objName"
}
MyObject _myObject = _myObjectParser.GetMyObjectFromLog(_xmlFilePath);
Assert.AreEqual(_mockMyObject , _myObject);
}
Этот тест не работает, поскольку MyObject
не переопределяет метод Equals
, и я не хочу переопределять метод Equals
только для целей теста.
Поэтому я переписываю тест следующим образом:
[Test]
public void GetMyObjectFromLog()
{
string _xmlFilePath = @"C:\XmlFile.xml";
MyObjectParser _myObjectParser = new MyObjectParser();
MyObject _myObject = _myObjectParser.GetMyObjectFromLog(_xmlFilePath);
Assert.AreEqual("obj", _myObject.Title);
Assert.AreEqual("objName", _myObject.Name);
}
Хорошо, это работает ... но подходит ли этот тест? Более того, существует зависимость от файла.
Уместно ли использовать Mock Framework вместо? И как им пользоваться?
Спасибо!