单元测试从私有访问器抛出ArgumentOutOfRange

时间:2012-03-26 10:35:29

标签: unit-testing mstest

我的单元测试项目中有一个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.
    }
}

0 个答案:

没有答案