如何(集成)测试自定义变量侦听器以确保不会发生分数损坏?

问题描述 投票:0回答:1

背景

我目前面临的问题是,在修复变量侦听器中的某些业务逻辑后,所述侦听器导致分数损坏。我有一个非常通用的集成测试,以避免破坏我们的解决方案。它仅举一个例子并以

FULL_ASSERT
模式求解。

但是,分数损坏似乎只在非常特定的情况下发生,这就是为什么我目前正在寻找一种方法以更孤立的方式提取和测试此场景。我想这会

  • 帮助调试
  • 允许进行更具体的测试

问题

我将如何编写测试

  • 建立一个可行的解决方案(我自己弄清楚这可能不会成为问题)
  • 对该解决方案执行一个或多个特定动作
  • 断言没有发生腐败
  • 断言影子变量的期望值(我自己发现这可能不会成为问题)

总的来说,我认为我最感兴趣的是模拟创建和执行动作以触发听众的部分。

备注:

kotlin testing optaplanner timefold
1个回答
0
投票

官方的答案是,在受支持的公共 API 中无法做到这一点。

您已经找到了非官方答案 - 如果您创建

AbstractScoreDirector
的实例,您将能够通过在实例上运行
before/after...()
方法来模拟每个场景。不过,这是内部 API,任何内容都可能随时更改且不会发出警告。

我们知道这些答案都不令人满意。可变监听器是一项复杂的业务,我们保留在议程上的一件事是让它们更容易处理。当这种情况发生时 - 目前还没有设定的时间表 - 您将能够使用完全支持的 API 单独测试它们。

© www.soinside.com 2019 - 2024. All rights reserved.