如何在不进行嘲笑的情况下对每个异常进

时间:2017-06-27 08:02:46

标签: c# unit-testing

我正在尝试对以下代码进行单元测试。我不知道如何获得100%的报道,而不是嘲笑我真的不喜欢,我不知道如何通过所有的If语句。 非常感谢

public static int Log(Exception ex)
{

    if (config_info.EnableRayGun)
    {
        try
        {
            dynamic c = new RaygunClient { UserInfo = new Mindscape.Raygun4Net.Messages.RaygunIdentifierMessage(GetUsername()) };

            c.Send(ex);
        }
        catch
        {
            //Swallow the exception. Oh the irony.
        }

    }


    if ((config_info.GelfPublisherEnabled))
    {

        try
        {
            dynamic publisher = new GelfPublisher(config_info.GelfPublisherIP, config_info.GelfPublisherPort);
            dynamic msg = new GelfMessage
            {
                FullMessage = ex.Message,
                TimeStamp = DateTime.UtcNow
            };
            msg.Add("error", ex);
            publisher.Publish(msg);


        }
        catch
        {
        }

    }

    if ((config_info.EnableApplicationInsights))
    {
        dynamic ai = new TelemetryClient();
        ai.TrackException(ex);
    }

    return DoLog(ex);
}

1 个答案:

答案 0 :(得分:1)

如果您使用MSTest框架进行单元测试,则可以使用ExpectedExceptionAttribute

[ExpectedException(typeof(System.Exception))]
public boid MyTest()
{
  //test code here
}