我是編寫單元測試的新手。 我已經使用PrivateObject來訪問和修改一個類的私有成員,以便在測試時使用它。如何使用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
}
}
}
如果它們是私有變量並且您需要更改它們,則應該爲每個變量設置公共的getter/setter。或者改用屬性。 – ulu5