代码之家  ›  专栏  ›  技术社区  ›  sud03r

测试Sttok类似函数[C++]的测试用例

  •  2
  • sud03r  · 技术社区  · 14 年前

    考虑以下类定义:

    class StrToTokens {
      StrToTokens(const char* str, const char* delimiters = "\t\r\n"); //constructor
      string getNextToken();
      void reset();
      bool empty();
    }
    

    有人能列出一些好的测试用例来测试上面的类吗?

    我能想到的是:
    空字符串、空分隔符、重复分隔符、连续分隔符、仅带分隔符的字符串。

    然而,面试官期望更多(更好的)。你能帮忙吗?

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Björn Pollex    14 年前

    嗯,我通常添加至少一个测试用例来测试一个正常的工作用例。当然,你们提到的所有测试都是为构造函数而进行的。其他方法也必须进行测试:

    • 重置是否真的重置(重置意味着要做什么)
    • 空的行为是否如预期的那样
    • 是否以正确的方式/顺序检索令牌?

    我通常实现一些更复杂的测试用例来测试这些东西,比如

    Initialize
    read a token
    reset
    read a token
    

    Initialize
    read all tokens
    check empty
    
        2
  •  2
  •   Andreas Bonini    14 年前

    如果您正在寻找边缘案例,我将测试以下内容。其中一些你已经想出了,但我不认为有比以下更多的“急躁”案例:

    StrToTokens(NULL);
    StrToTokens("a", NULL);
    StrToTokens("a", "\0");
    StrToTokens("", "");
    StrToTokens("abc", "abc");