Я написал единичный тест с MD 2.8.5 в проекте, который включает System.Core и с целью сборки Mono/.NET 3.5. Мне очень нравится Assert.Throws нового NUnit, поэтому решил написать для него метод расширения. Я создал новый файл с этим в качестве своего содержимого в том же пространстве имен, что и в тесте. Может ли кто-нибудь увидеть мою ошибку?Моно и методы расширения с MonoDevelop 2.8.5
public delegate void TestDelegate();
public static class AssertThrows
{
public static T Throws<T>(this Assert assert, TestDelegate td)
where T : Exception
{
try
{
td();
}
catch(T e)
{
return e;
}
catch
{
throw new AssertionException("Wrong exception type.");
}
throw new AssertionException("Did not throw an error.");
}
}
MonoDevelop «видит» метод расширения посредством его завершения кода. Тем не менее, отчеты компилятора:
Performing main compilation...
/Users/shamwow/dev/EngineTests.cs(19,37): error CS0117:
`NUnit.Framework.Assert' does not contain a definition for `Throws'
/Applications/MonoDevelop.app/Contents/MacOS/lib/monodevelop/AddIns/NUnit/nunit.framework.dll (Location of the symbol related to previous error)
Build complete -- 1 error, 0 warnings
(я знаю, MD и Mono не то же самое.)
Duh! Сегодня утром я обвиняю его в пред-кофе-мышлении. Спасибо, Джон! – realistschuckle