我有许多 C# 集成测试使用由 cucumber 推广的 Given/When/Then 样式编写。我正在使用一个与 NBehave 基本相同的框架。
我面临的一个反复出现的问题是设置和连接集成测试所需的所有应用程序状态的问题。我的大多数测试看起来像这样:
给定一个空系统 和一个新的 NetworkServer 和一个新的 ServerDatabase 还有一个新的事件记录器 和一个新的网络连接 还有一个新的 LoggingClient 当客户端记录新事件时 然后它应该出现在服务器数据库中
如您所见,动作和断言是单行的,但我有 6 行“接线”。几乎我的每个测试都重复这 6 行。
这对我来说似乎是一种代码味道,但我不确定如何处理这个问题。我可以将 6 行重构为一行(Given "a valid system..."
或类似的),但这似乎太过分了,我会隐藏太多信息。
我会很感激其他在这方面有更多经验的人提出的任何想法。非常感谢。