首页 文章

单元测试 - 困惑

提问于
浏览
1

我正在学习单元测试,我对测试的内容以及与他们一起去的边界感到困惑 .

所以这个问题的答案非常明确 - https://stackoverflow.com/a/1257583/445330

对我来说突出的一点是“它与数据库对话” .

在我正在学习的特定系统中,我需要测试xml树中的特定节点 - 表示为对象 .

除了加载此对象,我如何测试此值的存在 - 或者我是否混淆了单元测试和功能测试?

3 回答

  • 0

    您要链接的答案的要点是

    单元测试不依赖于外部资源 .

    因此,只要您的XML树以编程方式创建并存储在内存中,而不是从文件系统(或任何其他外部资源)加载,您就可以正确地执行它 .

    以编程方式创建XML树可能很笨拙,因此您可以做的是将树作为XML文件存储在与测试相同的包中,然后加载它们

    this.getClass().getClassLoader().getResourcesAsStream(name);
    

    它不计入外部资源,因为它是从测试套件的类路径加载的 .

  • 2

    如果这只是一个单元测试,那么您正在测试正在读取xml树的代码并检查树是否符合您的预期 . 您可以通过多种方式加载测试对象 . 一种方法是让单元测试将对象构建为测试设置的一部分 . 另一种方法是将xml树的测试版本存储在一个平面文件中(与测试类一起),并让测试在测试时解析文件 .

    关键是测试的输入需要是一个控件,而不是取决于某些外部资源(如数据库)的状态 .

  • 0

    在我的测试中,我不仅对特殊功能进行了一次,而且进行了越来越多的测试,因此单元测试是可能性的一部分 . 我选择特定情况例如在一个除法中我使用0作为操作数,单操作数等,具体数值区间的限制,也是正常情况 . 所有测试都是可预测的,因此当我更改代码时,案例的执行可确保所做的更改的稳定性 .

    在你的情况下,我认为你正在做一个单元测试 .

    我接受维基百科对单元测试和功能测试的定义 .

    功能测试很广泛,并且是面向程序的 . 单元测试面向可测试代码的最小部分,并且应该尽可能通用 .

    在您的特定情况下“在我正在学习的特定系统中,我需要测试xml树中的特定节点 - 表示为对象”如果函数的结果是对象,则应该有一个众所周知的输入字符串,文件,对象静态定义,以及断言特定输入的输出是具有特定节点的对象,或者更好地提取返回对象,提取特定节点并断言特定节点应该等于特定值/对象

    我希望有用

相关问题