Tôi muốn kiểm tra một đoạn mã trả về một đối tượng.Kiểm thử đơn vị ... cách cải thiện nó
tôi sử dụng NUnit và trong một lớp học kiểm tra, tôi viết một phương pháp để kiểm tra xem phương pháp của tôi hoạt động tốt ...
[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);
}
thử nghiệm này không làm việc vì MyObject
không ghi đè Equals
phương pháp, và tôi don không muốn ghi đè phương thức Equals
chỉ nhằm mục đích kiểm tra.
Vì vậy, tôi viết lại bài kiểm tra như thế này:
[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);
}
Ok, nó hoạt động ... nhưng thử nghiệm này là thích hợp? Hơn nữa, có một sự phụ thuộc vào một tập tin.
Có phù hợp để sử dụng khung Mock thay vì không? Và làm thế nào để sử dụng nó?
Cảm ơn bạn!
Thực tế, bạn có thể viết thư từ theo một dòng, nhưng nó có khả năng đọc kém: 'Assert.That (myObjectA, Is.EqualTo (myObjectB) .Sử dụng ((x, y) => x.Name == y .Name && x.Title == y.Title? 0: 1)); ' –
Restuta