Соответствие Moq и Проверяет Массив / параметры IEnumerable в установке метода

Это походит на то, что Вы просите, расширение Проблемы остановки. Я не полагаю, что такая вещь возможна, даже в теории.

Просто ответ на вопрос "Эта строка кода будет когда-либо работать?" было бы очень трудным если не невозможный сделать в общем случае.

Отредактированный для добавления: Хотя общий случай тяжел, посмотрите здесь для частичного решения: http://research.microsoft.com/apps/pubs/default.aspx?id=104919

кроме того, некоторые заявили, что выполнение анализа вручную является единственной опцией, но я не полагаю, что это - действительно корректный способ посмотреть на него. Тяжелая проблема все еще тяжела, даже когда человек добавляется к системе/машине. После дальнейшего отражения я предполагаю, что 99%-е решение может быть выполнимым, и могло бы даже работать, а также или лучше, чем человек.

11
задан Ryu 16 August 2009 в 20:48
поделиться

1 ответ

Пришлось реализовать несколько настраиваемых сопоставителей, не нашел другого встроенного способа для этого в версии 3. Используется http://code.google.com/p/moq/wiki/QuickStart как ресурс.

public T[] MatchCollection<T>(T[] expectation)
{
  return Match.Create<T[]>(inputCollection => (expectation.All((i) => inputCollection.Contains(i))));
}

public IEnumerable<T> MatchCollection<T>(IEnumerable<T> expectation)
{
  return Match.Create<IEnumerable<T>>(inputCollection => (expectation.All((i) => inputCollection.Contains(i))));
}


public void MyTest()
{

...

mockDataWriter.Setup(m => m.UpdateFiles(MatchCollection(new string[]{"file2.txt","file1.txt"}) ) );

...


}
8
ответ дан 3 December 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: