如何在像Gallio/MbUnit这样抛出异常时编写自定义消息



我将PostSharp与Gallio/MbUnit一起使用。

我希望能够从测试用例中捕获异常,并为我捕获的异常编写一条自定义消息,无论异常写在哪里。例外情况会被PostSharp方面捕获。例如,我想要一些函数WriteToExceptionLog,这样

[Serializable] 
public class MyAspect: OnExceptionAspect 
{
    public override void OnException(MethodExecutionArgs args)
    {
        WriteToExceptionLog("My custom message");
    }
}

将捕获

[TestFixture]
public class MyClass
{
    [Test]
    public void MyTest()
    {
        throw new NotImplementedException();
    }
}

并且日志将显示"我的自定义消息",而不是NotImplementedException。

我该怎么做?异常消息写在哪里?

您不需要使用p#来实现这一点:

public class ExceptionInterceptorAttribute : TestAttribute
{
    protected override void Execute(PatternTestInstanceState state)
    {
        try
        {
            base.Execute(state);
        }
        catch (Exception e)
        {
            TestLog.Failures.WriteLine("Intercepted an exception of type: {0}", e.GetType());
        }
    }
}
public class ExceptionInterceptorTests
{
    [ExceptionInterceptor]
    public void With_interceptor()
    {
        throw new NotImplementedException();
    }
    [Test]
    public void Without_interceptor()
    {
        throw new NotImplementedException();
    }
}

相关内容

  • 没有找到相关文章

最新更新