У меня есть частный аксессор, созданный 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.
}
}