我的单元测试项目中有一个VS生成的私有访问器。在测试中我定义了一个ExpectedException属性,我的测试方法抛出了这个。但是,单元测试抛出ArgumentOutOfRangeException(参数名称:index),我的测试失败。我不知道为什么会这样。
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.
}
}