Модульный тест выдает ArgumentOutOfRange из приватного метода доступа - PullRequest
0 голосов
/ 26 марта 2012

У меня есть частный аксессор, созданный VS, в моем проекте модульного тестирования.В тесте я определил атрибут ExpectedException, и мой тестируемый метод выбрасывает это.Однако тогда модульный тест выдает исключение ArgumentOutOfRangeException (имя параметра: индекс), и мой тест не пройден.Я понятия не имею, почему это происходит.

at Microsoft.VisualStudio.TestTools.UnitTesting.Helper.ThrowInnerException(TargetInvocationException outer)
at Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject.Invoke(String name, BindingFlags bindingFlags, Type[] parameterTypes, Object[] args, CultureInfo culture, Type[] typeArguments)
at Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject.Invoke(String name, Type[] parameterTypes, Object[] args)
at MyProject.MyType_Accessor.Foo()
at MyUnitTests.MyTypeTests.TestFoo() in c:\...\ MyTypeTests.cs:line 513

Редактировать

public class MyType
{
    private void Foo()
    {
         ...

        if (DateTime.Now < _date)
        {
            throw new ValidationException();
        }
    }
}

[TestClass]
public class MyTypeTests
{
    [TestMethod]
    [ExpectedException(typeof(ValidationException))]
    public void TestFoo()
    {
        MyType_Accessor mytype = new MyType_Accessor();
        mytype.Foo();   // This is line 513.
    }
}
...