2014-12-27 1 views
0

Это макет, так что никто не заботится, он длиннее 80 символов.Мне нужно явно объявить словарь на C# для возвращаемого значения mock

Я пытаюсь с

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

ответ

2

Правильный синтаксис для инициализации словаря находится в 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.

1

словарь инициализации: 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 символов. Может быть, эти данные не так важны и уложены где-то в вашем тестовом коде, но когда вам нужно прокручивать текст в текстовом редакторе или даже нужно заглядывать через строку, чтобы прочитать его, он быстро становится утомительным.

+0

Хорошо, я собираюсь избежать написания более 80 символов в одной строке, даже там, на моем возвратном значении заглушки. – r1verside