应该是什么在单元测试
问题描述:
喜上单元测试的预期值我是新的,我写这个定位单元测试方法,但我不知道什么是它的预期值。应该是什么在单元测试
下面是要测试的功能:
public static string GetStringResource(string language, string name)
{
Localization cfg = GetInstance();
try
{
if (cfg != null && cfg._config != null)
return cfg._config.GetValue(language, name).ToString();
return string.Empty;
}
catch { return string.Format("Localization Error: '{0}:{1}' Not Found.", language, name); }
}
这里是getValue函数:
public override object GetValue(string section, string entry)
{
VerifyAndAdjustSection(ref section);
VerifyAndAdjustEntry(ref entry);
try
{
//XmlDocument doc = GetXmlDocument();
XmlElement root = doc.DocumentElement;
XmlNode entryNode = root.SelectSingleNode(GetSectionsPath(section) + "/" + GetEntryPath(entry));
return entryNode.InnerText;
}
catch { return null; }
}
这是我的未完成的测试方法:
public void GetStringResourceTest()
{
string language = "English"; // TODO: Initialize to an appropriate value
string name = "John Smith"; // TODO: Initialize to an appropriate value
string expected = language; // TODO:" Initialize to an appropriate value
string actual;
actual = Localization.GetStringResource(language, name);
Assert.AreEqual(expected, actual);
}
答
当你正在进行单元测试时,你试图验证,对于给定的一组输入,你有正确的输出。
在这种情况下,您有两个输入:language
和name
。
据推测,考虑到两者的某种组合,有一个预期的输出。作为开发人员,您应该有必要的工具集来确定并验证它是否正确。然后,一旦你写了一个测试,你永远不会再手动验证该行为!
例如,如果你的单元测试一个计算器,你可能会断言,鉴于1+1
测试Add
方法,输出为2
。
+0
我没有写出原始代码,所以预期的输出在这里有点混乱。至少我应该找出什么路径? –
+0
如果可能的话,与任何人编写原始代码交谈。如果没有,与另一位了解更多的团队成员交谈。 *失败*,请与其中一位商业用户和/或产品所有者交谈。 –
首先,什么语言?其次,如果你不知道这段代码的行为,为什么你会期待陌生人呢?编写单元测试是关于给定某些输入的测试行为。 – Makoto