क्या यूनिट टेस्ट के अपेक्षित परिणाम हार्डकोड किए जा सकते हैं, या क्या वे आरंभिक चर पर निर्भर हो सकते हैं? क्या हार्डकोड या गणना किए गए परिणाम यूनिट टेस्ट में त्रुटियों को पेश करने के जोखिम को बढ़ाते हैं? क्या अन्य कारक हैं जिन पर मैंने विचार नहीं किया है?
उदाहरण के लिए, इन दोनों में से कौन अधिक विश्वसनीय प्रारूप है?
[TestMethod]
public void GetPath_Hardcoded()
{
MyClass target = new MyClass("fields", "that later", "determine", "a folder");
string expected = "C:\\Output Folder\\fields\\that later\\determine\\a folder";
string actual = target.GetPath();
Assert.AreEqual(expected, actual,
"GetPath should return a full directory path based on its fields.");
}
[TestMethod]
public void GetPath_Softcoded()
{
MyClass target = new MyClass("fields", "that later", "determine", "a folder");
string expected = "C:\\Output Folder\\" + string.Join("\\", target.Field1, target.Field2, target.Field3, target.Field4);
string actual = target.GetPath();
Assert.AreEqual(expected, actual,
"GetPath should return a full directory path based on its fields.");
}
EDIT 1: DXM के उत्तर के जवाब में, विकल्प 3 एक पसंदीदा समाधान है?
[TestMethod]
public void GetPath_Option3()
{
string field1 = "fields";
string field2 = "that later";
string field3 = "determine";
string field4 = "a folder";
MyClass target = new MyClass(field1, field2, field3, field4);
string expected = "C:\\Output Folder\\" + string.Join("\\", field1, field2, field3, field4);
string actual = target.GetPath();
Assert.AreEqual(expected, actual,
"GetPath should return a full directory path based on its fields.");
}