Это походит на то, что Вы просите, расширение Проблемы остановки. Я не полагаю, что такая вещь возможна, даже в теории.
Просто ответ на вопрос "Эта строка кода будет когда-либо работать?" было бы очень трудным если не невозможный сделать в общем случае.
Отредактированный для добавления: Хотя общий случай тяжел, посмотрите здесь для частичного решения: http://research.microsoft.com/apps/pubs/default.aspx?id=104919
кроме того, некоторые заявили, что выполнение анализа вручную является единственной опцией, но я не полагаю, что это - действительно корректный способ посмотреть на него. Тяжелая проблема все еще тяжела, даже когда человек добавляется к системе/машине. После дальнейшего отражения я предполагаю, что 99%-е решение может быть выполнимым, и могло бы даже работать, а также или лучше, чем человек.
Пришлось реализовать несколько настраиваемых сопоставителей, не нашел другого встроенного способа для этого в версии 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"}) ) );
...
}