Странное поведение с NUnit, ExpectedException и yield return

У меня странное поведение в тесте, где я хочу проверить, что при передаче null в качестве параметра возникает исключение. Когда я запускаю тест, я получаю от NUnit:

    System.ArgumentNullException was expected
    -- Exception doesn't have a stack trace -- 

Мой тест:

[Test]
[ExpectedException(typeof(ArgumentNullException))]
public void Should_not_retrieve_any_fields_when_file_is_null()
{
    _creator.CreateFields(null);
}

Моя реализация:

public IEnumerable<ImportField> CreateFields(HttpPostedFileBase file)
{
    if (file == null) throw new ArgumentNullException("file");

    using (var reader = new StreamReader(file.InputStream))
    {
        var firstLine = reader.ReadLine();
        var columns = firstLine.Split(new[] { ',' });

        for (var i = 0; i < columns.Length; i++)
        {
            yield return new ImportField(columns[i], i);
        }
    }
}

Есть ли логическое объяснение такому поведению и должен ли я сделать свою реализацию по-другому?

9
задан John Saunders 26 November 2011 в 20:20
поделиться