单元测试中的预期值应该是多少?

时间:2013-08-25 16:49:57

标签: unit-testing

嗨,我是单元测试的新手,我正在编写这种本地化单元测试方法,但我不确定它的预期值是多少。

以下是要测试的功能:

 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 个答案:

答案 0 :(得分:1)

当您进行单元测试时,您正在尝试验证,对于给定的输入集,您具有正确的输出。

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

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

例如,如果您是对计算器进行单元测试,则可以通过断言给定Add来测试1+1方法,输出为2