2 个版本
0.1.0-beta.2 | 2022年1月21日 |
---|---|
0.1.0-beta.1 | 2022年1月9日 |
#967 在 GUI
125KB
2.5K SLoC
relm4-store-backend-dummy
本软件包包含数据存储的实现,旨在用于测试/调试使用存储和存储视图的代码。
要点
DummyBackend 是一个数据存储,您在其中手动控制状态之间的转换
由于“手动控制”,您需要负责转换的正确性。如果您在状态转换期间添加了一些记录,但没有提供发送到存储视图的适当消息,请不要期望存储视图会以任何合理的方式表现。
在此处贡献时应遵循的规则
- 由于它是测试/调试辅助工具,任何更新/修复/功能都应该附带适当的测试用例。当您的测试因您使用的工具不符合预期而失败时,这会非常令人沮丧。并不需要100%的代码覆盖率。我们越接近100%,就越好,并且对于这个软件包,pr 将会非常仔细地检查这一点。目前许多测试并不全面。例如,它们测试返回的向量是否具有期望的元素数量,但没有测试元素本身。
- 让我们让实现尽可能可预测。数据存储发布其发送者,理论上您可以使用它来驱动数据存储。如果我们坦率地说,如果您在测试数据存储并使用存储视图来观察更改时依赖于代码是否向数据存储发送消息,这将是一场噩梦。测试异步代码和发送者/接收者本身就足够复杂,而无需副作用扩散到您的数据存储。每次定义更改了什么以及要发送给视图的内容都是一项大量工作,但它为您提供了完全的控制和可预测性。
- 让我们让实现尽可能简单。越简单,问题就越少,知识负担就越小。
- 遵循Scout规则,留下一个更好的世界
有什么是想要的吗?
- 能够检查发送到数据存储的传入消息,并提供一种方式来告知可接受的事件顺序。
- 创建一种检查测试后端返回内容的方法
检查传入消息的顺序
目前我们只是忽略传入的消息。检查它们发送的顺序会更好。
例如,如果您期望向空存储发送添加和删除事件,则您会期望它们按照 Add
顺序首先出现,然后是 Remove
(在大多数情况下)。因为它们可以被解释为用户先添加然后删除记录。如果顺序相反,Remove
将被存储视为空操作(noop),因为没有记录可以删除,而添加将使存储中留下一个记录,在这种情况下这可能是件糟糕的事情。
创建一种检查测试后端返回内容的方法
当前对 DummyBackend::get_range
的测试正在检查返回的集合是否具有预期的尺寸,但它们没有检查返回的向量是否包含适当的内容。
这可能与规则 1
相冲突。当前的实现足够简单,我不太担心。尽管如此,它确实在待办事项列表中,以确保其实现。
依赖关系
约 21MB
约 477K SLoC