我需要在C#上显式声明一个Dictionary来获取模拟返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我需要在C#上显式声明一个Dictionary来获取模拟返回值相关的知识,希望对你有一定的参考价值。

我正在尝试

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

答案

初始化词典的正确语法可在this MSDN article找到:

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) }
}

看到这个fiddle

另一答案

字典初始化: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个字符的代码。可能这些数据并不重要,并且在您的测试代码中的某个地方捆绑在一起,但是当您必须在文本编辑器中滚动或者甚至必须多次浏览一行以便阅读它时,它很快就会变得乏味。

以上是关于我需要在C#上显式声明一个Dictionary来获取模拟返回值的主要内容,如果未能解决你的问题,请参考以下文章

在 N 元构造函数上显式?

NSAsynchronousFetchRequest - 应该在主线程上显式更新

如何在实体框架迁移的“一半”多对多上显式设置索引或外键的名称?

在 c# 中,我们是不是可以控制在单个处理器或一定数量的处理器上显式运行代码?

C#Dictionary字典

[Journey with golang] 4. Interface