我是编写单元测试的新手。我使用 PrivateObject 来访问和修改类的私有成员以在测试时使用它。
但是,如果我想访问我正在测试的方法的私有变量,我该怎么做。我不会更改任何功能,但我需要修改一个变量才能完成单元测试。
这就是我想要做的。在 ABC 类中,我想修改 dwConn,因为我将无法访问 SqlConnectionManager 进行单元测试,但我可以在应用程序运行时访问它。非常感谢您阅读本文。任何帮助注册这都会很好。
public class ABCTest
{
public void MethodATest()
{
const string connectionString = @"Data Source=servername\MSSQLSERVER2008;Initial Catalog=DB1;User ID=user1;Password=pswd1";
SqlConnection sqlConn = new SqlConnection(connectionString);
PrivateObject param0 = new PrivateObject(target);
param0.SetField("dwConn", sqlConn);
actual = target.MethodA();
}
}
public Class ABC()
{
Method A()
{
SqlConnection dwConn = (SqlConnection)SqlConnectionManager.Instance.GetDefaultConnection();
using(dwconn)
{
//some stuff
}
}
}