3

我终于开始利用 MassTransit 中出色的 Automatonymous 组件,并且我想通过我的新状态机进行 TDD。

在阅读了此处的 MT 文档 ( http://masstransit-project.com/MassTransit/advanced/sagas/automatonymous.html ) 并花了一些时间谷歌搜索后,我在 MT/Automatonymous Git 存储库中找到了单元测试,看起来像要走的路:

特别是,_machine.RaiseEvent(....)方法似乎正是我需要能够使用测试提供的刺激来驱动状态机。

接下来,我去寻找那个重载......原来它是一个似乎生活在这里的扩展方法:

https://github.com/MassTransit/Automatonymous/blob/15e9181ed05e37ff71e85b514aafc351b1edf27f/src/Automatonymous/RaiseEventExtensions.tt

这就是我卡住的地方。我不确定使用这些扩展方法进行测试的正确方法是什么?*.tt 是一种文本生成模板格式...这些是作为 nuget 包的一部分安装的吗?如何访问扩展程序?和/或更广泛地说,为继承自的状态机编写单元测试的推荐方法是什么MassTransitStateMachine<T>

此处的后续问题:如何通过 InMemoryTestHarness 成功驱动 MassTransitStateMachine?

4

1 回答 1

3

您引用的测试不是来自 MassTransit,而是来自 Automatonymous 库,它不是 MassTransit 的一部分。

您正在寻找的内容可能在这里找到:

  • 使用测试框架的状态机传奇测试。问题是测试框架与 NUnit 耦合
  • 使用测试工具的“经典”传奇测试。测试工具与框架无关,但至少在主存储库中没有组合状态机和测试工具的测试。
  • 状态机传奇使用测试硬度进行测试,在主仓库之外。这是我的项目,我使用 xUnit,因为我使用的是测试工具,所以很好。但是,您可以看到一个测试被跳过了,我不记得到底是什么问题,但是有一些我无法解决的问题。这可能与我测试的持久性有关。
于 2018-04-10T22:23:00.340 回答