如何使用xUnit对具有私有方法和字段的类进行单元测试?

时间:2017-08-23 14:58:47

标签: c# unit-testing tdd xunit

我正在尝试使用私有访问修饰符对测试类方法进行单元化,并且无法修改这些方法的可访问性。

public class Form1 : Form
{
    private void MyMethod(object sender, EventArgs e)
    {
        //business code
    }
    private void InitializeComponent()
    {this.Load += new System.EventHandler(this.MyMethod);
    }
}

1 个答案:

答案 0 :(得分:-2)

您可以制作临时内部测试方法:

internal void MyMethodForTest(object sender, EventArgs e) //test method
{
    //business code
}

private void MyMethod(object sender, EventArgs e) //real method
{
    //business code
}

然后,添加此行,以便测试可以访问您的内部方法:

[assembly:InternalsVisibleTo("UnitTest")]

完成测试后,您可以删除内部测试方法。