我需要在 C# 上显式声明一个字典来模拟返回值

本文关键字:一个 字典 返回值 模拟 声明 | 更新日期: 2023-09-27 18:35:30

我正在尝试

new Dictionary<long,Venta>(){
    new KeyValuePair<long,Venta>(1,new Venta(1,1,50)), 
    new KeyValuePair<long,Venta>(2,new Venta(1,1,50))
};

但这不是正确的语法,我不知道该怎么做。 也许我必须使用带有 .callback 的 lambda

我需要在 C# 上显式声明一个字典来模拟返回值

初始化字典的正确语法可在此 MSDN 文章中找到:

Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};

在您的情况下,您将执行以下操作:

new Dictionary<long, Venta>()
{
    { 1, new Venta(1, 1, 50) },
    { 2, new Venta(1, 1, 50) }
}

看到这个小提琴。

字典初始化:http://msdn.microsoft.com/en-us/library/bb531208.aspx

var mockDict = new Dictionary<long,Venta>()
               {
                   {1,new Venta(1,1,50)},
                   {2,new Venta(1,1,50)}
               };

顺便说一句,这将被视为存根而不是模拟(http://martinfowler.com/articles/mocksArentStubs.html)

根据我的经验,很多人关心一行代码是否超过 80 个字符。可能是这些数据并不那么重要,并且捆绑在测试代码中的某个地方,但是当您必须在文本编辑器中滚动浏览,甚至必须多次浏览一行才能阅读它时,它很快就会变得乏味。