0
头像

使用 TestGeneious 进行单元/集成测试

我正在为 Geneious Prime 重构和移植我们的 Geneious 插件。

 

我有一个枚举类,它是插件中所有代码的核心。但是虽然枚举常量初始化(即在私有构造函数中)像这样的 Geneious API

  • DocumentNoteUtilities.getNoteType
  • DocumentNoteUtilities.createNewNoteType

叫做。这些当然隐式地执行数据库 DML。

因此,我看不到如何为直接或间接依赖于该枚举类(几乎全部)的其他类创建单元测试。

 

我在 JUnit @BeforeClass 方法中尝试过 TestGeneious.initialize() 和 TestGeneious.initializeAllPlugins() 。但这没有用。

我应该怎么做?

 

艾科

 

信息管理

官方评论

头像

嗨,艾科,

你走在正确的轨道上。

接下来的步骤完全取决于您要执行的操作。对于我刚刚创建的 TestGeneious.initializeAllPlugins() 的测试,足以使用 createNewNoteType 和 getNoteType。

请注意,在使用 getNoteType 检索新创建的笔记类型之前,您需要调用 DocumentNoteUtilities.setNoteType。

如果由于未设置本地数据库而仍然无法正常工作,则将以下内容添加到您的测试中:

TestGeneious.initializeAllPlugins();
PluginUtilities.getGeneiousService("LocalDocuments");

我希望这有帮助。

干杯,
杰森

杰森
评论动作 永久链接

3 条评论

0
头像

嗨,杰森,

我终于想通了——尽管回想起来这一切都很明显。我的(Eclipse)当然应该与我使用示例插件之一或我自己的插件运行 Geneious 完全一样......例如 workdir 设置和 LD_LIBRARY_PATH 设置(后者不是必需的,但可以防止警告)。

 

最好在 TestGeneious 类中警告开发人员这一点。或者也可以在其中一个示例插件中包含一个示例单元测试。

 

再见,

 

艾科

信息管理 0 票
评论动作 永久链接
0
头像

嗨,艾科,

我很高兴您找到了解决方案。感谢您将其张贴在这里供其他人查找。

你的建议很好。我已经提出了改进文档的票。这当然必须相对于其他工作进行优先排序,所以我不能保证它是否或何时完成。

干杯,
杰森

杰森 0 票
评论动作 永久链接