java - 使用 JUnit 测试树实现

标签 java testing junit tree qa

我需要为其节点测试树实现和不同的“移动”操作。我的树保存到 DB(在我们的例子中是 mongoDB,但它并不重要)。最好的方法是什么?我正在使用 JUnit。

到目前为止,我的想法如下:

  • 有一个创建树结构并将其保存到 DB
  • 的 setUp 方法
  • 让 setUp 方法创建树的内存副本,每个节点具有以下详细信息:父 ID、位置、名称
  • 运行我要测试的每个测试功能。例如。将节点从 A 移动到 B
  • 将内存中的内存与新的数据库内版本进行比较。传播发现的每个差异
  • 断言差异变化是预期的

  • 创建内存中副本的原因是针对复杂树(多个级别和每个级别的节点)进行测试。否则,我必须为每个测试测试每个节点。

    这有意义吗?有什么更好的方法(或更好的:可以为我做的图书馆)?

    谢谢!

    最佳答案

    你的方法听起来不错。我建议进行一项更改:编写两个递归方法来代替数据库,它们生成给定树的字符串 XML 表示,并从给定的 XML 表示重新创建树。

    您可以将初始树和预期树存储为每个测试用例的 XML 字符串,并且测试用例的断言是在一组操作之后的树的字符串 XML 表示是否等于()预期的 XML 字符串。

    应该很容易直观地检查各种 XML 字符串并且调试会更容易,因为当测试失败时,您可以看到实际的 XML 并将其与预期的 XML 进行直观比较。事实上,您甚至可以在记录模式下运行测试用例,它们只需写出生成的 XML 供您审查和批准。

    关于java - 使用 JUnit 测试树实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11710179/

    相关文章:

    java - 我的Java资源中的src突然消失了

    java - 除非明确注释,否则不会发现CDI bean

    java - Vaadin:以编程方式打开组合框下拉菜单

    java - 使用 IntelliJ 自动重启 Jetty

    testing - 我如何测试(QA)我的Amazon应用程序MWS

    testing - Cucumber-JVM Maven 集成问题

    android - 您如何完全使用 Robotium 对 Android 应用程序进行功能测试

    java - 当使用 void 方法调用调用方法时,Mockito doNothing 不起作用

    java - 我可以在与主代码相同的类中进行 jUnit 测试吗?

    Java 临时文件夹 getRoot() 异常