2013-08-25 187 views
-1

喜上单元测试的预期值我是新的,我写这个定位单元测试方法,但我不知道什么是它的预期值。应该是什么在单元测试

下面是要测试的功能:

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); 

    } 
+1

首先,什么语言?其次,如果你不知道这段代码的行为,为什么你会期待陌生人呢?编写单元测试是关于给定某些输入的测试行为。 – Makoto

回答

1

当你正在进行单元测试时,你试图验证,对于给定的一组输入,你有正确的输出。

在这种情况下,您有两个输入:languagename

据推测,考虑到两者的某种组合,有一个预期的输出。作为开发人员,您应该有必要的工具集来确定并验证它是否正确。然后,一旦你写了一个测试,你永远不会再手动验证该行为!

例如,如果你的单元测试一个计算器,你可能会断言,鉴于1+1测试Add方法,输出为2

+0

我没有写出原始代码,所以预期的输出在这里有点混乱。至少我应该找出什么路径? –

+0

如果可能的话,与任何人编写原始代码交谈。如果没有,与另一位了解更多的团队成员交谈。 *失败*,请与其中一位商业用户和/或产品所有者交谈。 –