我觉得有必要打包我的 openssg 喜欢 node.js 模块。由于缺乏我的Java知识,我应该在项目开头完成包装。我已经延迟寻找包装应用程序的方法,但是我尝试使用Gradle
。还有其他包装Java命令行应用程序的方法。我之所以决定Gradle
,是因为我发现的一个存储库使用了Gradle
。
❯ gradle test ─╯
BUILD SUCCESSFUL in 723ms
4 actionable tasks: 3 executed, 1 up-to-date
我现在可以快速使用gradle进行测试
我选择了JUnit
进行单元测试,因为它是最受欢迎的Java测试框架。因此,我相信学习JUnit
对我来说将是很大的财富。而且我之前为Crowdin CLI
Project编写单元测试有所了解。我知道编写良好的测试需要大量的思维和技能,但是,JUnit
断言方法比JavaScript断言要少,更简单。
我认为编写单元测试是查看我的代码以改善逻辑并在必要时拆分功能的另一个重要步骤,以更好地可读性和更轻松的修改。由于我做了一些重构工作以将代码分成较小的块,因此编写单元测试并不困难。但是我在编写测试时发现了一些错误。其中一个错误是在getUrl()
中。 getUrl()
是每个子节点调用父节点以完成文件路径的递归函数。我意识到根节没有添加数据。因此,侧栏菜单中的链接从未正确。而且它甚至在返回文件路径后甚至没有添加文件扩展名。我根据SpotBugs
建议更新了DomNode
复制构造函数,以深度复制对象。我怀疑在这种情况下它不应该是深副本,我的单位测试证明我不应该这样做。而且我还发现setParent()
没有将孩子添加到其父母中。所以孩子认识父母,父母不认识。
在编写测试时,有很多错误和边缘案例,但是我现在离开了它们,因为我需要对我的参数验证逻辑进行重大更新,因为它的复杂性现在太高了。而且,即使我本人,也几乎不可能阅读逻辑。而且我有一些错误处理的错误。单位测试的好处是,当我进行更改时,它会发现从我的变化中断的东西。因此,我可以防止更改的其他错误。我在合作社和开源项目中有一些测试写作经验。我不明白为什么我们要编写简单的测试。测试似乎没有做重要的工作。但是现在我知道模因的含义是,这个家伙对拖延写作单位测试的同事感到失望。尤其是,当代码库较大时,数百个开发人员正在努力时,这一点更为重要。单位测试使开发人员发现休息时间足够早。并通过强大的测试更快地发布过程。