【发布时间】:2012-04-23 13:19:39
【问题描述】:
在编写一组单元测试(针对现有遗留组件)时,我想要一种方法来关联错误代码列表(将由我模拟的服务返回)和相应错误消息列表(我正在测试的组件将返回)。
似乎使用List<Tuple<string, string>> 是定义此关联的一种不错的简单方法。
var errorCodesAndMessages = new List<Tuple<string, string>>
{
Tuple.Create("CODE1", "Error message 1"),
Tuple.Create("CODE2", "Error message 2")
// etc...
};
在我的单元测试中,我可以循环遍历errorCodesAndMessages,设置我的模拟服务以返回 nth 错误代码,并断言被测组件返回 nth 错误信息。
这是对Tuple<>的良好使用还是滥用?
编辑
回复表明Dictionary<string, string> 在这种情况下会更好。我不得不同意。但是,如果(出于某种原因)我们需要关联三段数据(例如错误代码、用户显示的错误消息和技术错误消息)怎么办
那么这是Tuple<>的好用处吗?
Tuple.Create("CODE1", "User error message", "Technical error message")
【问题讨论】:
-
没关系,但我可能会使用
Dictionary<TKey, TValue>,因为我可能需要从代码中查找错误(我想代码是唯一的)。 -
这主要是一个 DRY 问题。
-
@CodeInChaos - 你能详细说明一下吗?
标签: c# unit-testing .net-4.0 tuples