我有一个字典,我正在使用,以避免写大if语句。它将一个枚举映射为一个动作。它看起来像这样:单元测试委托操作被称为
var decisionMapper = new Dictionary<int, Action>
{
{
(int) ReviewStepType.StandardLetter,
() =>
caseDecisionService.ProcessSendStandardLetter(aCase)
},
{
(int) ReviewStepType.LetterWithComment,
() =>
caseDecisionService.ProcessSendStandardLetter(aCase)
},
{
(int) ReviewStepType.BespokeLetter,
() =>
caseDecisionService.ProcessSendBespokeLetter(aCase)
},
{
(int) ReviewStepType.AssignToCaseManager,
() =>
caseDecisionService.ProcessContinueAsCase(aCase)
},
};
那么我这样称呼它在我的方法:
decisionMapper[(int) reviewDecisionRequest.ReviewStepType]();
我的问题是我怎么能单元测试这些映射? (我使用NUnit和C#4.0)
我怎么能断言,当我打电话给我的decisionMapper - 即1等于呼叫-caseDecisionService.ProcessSendStandardLetter(aCase)。
非常感谢。
ReviewStepType是什么类型?枚举?如果你可以Enum.GetValues()(然后将每一个转换为int)。 – 2012-03-20 11:07:27
嗨,谢谢,是它的一个枚举。这将如何与测试一起工作?我想知道我已经正确地完成了我的映射。 – Sean 2012-03-20 11:10:56