我在找到私有静态方法时遇到问题。我的老板希望对它进行测试(尽管我知道测试并不是真的有必要)。
以下是我要测试的代码:
namespace Retail_Utilities.Printables
{
public partial class WarrantyDropoffSlip : INotifyPropertyChanged
{
private static string AddBusinessDays(string businessDays)
{
if (string.IsNullOrEmpty(businessDays)) return DateTime.Now.ToShortDateString();
var bDays = int.Parse(businessDays);
var date = DateTime.Now;
while (bDays > 0)
{
date = date.AddDays(1);
if (date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday)
bDays--;
}
return date.ToShortDateString();
}
}
}
这是我的测试代码。
namespace RetailUtilitiesUnitTests.Printables_TEST
{
[TestClass]
public class WarrantyDropoffSlipTEST
{
[TestMethod]
public void AddBusinessdays_ValidInput()
{
PrivateObject po = new PrivateObject(typeof(WarrantyDropoffSlip));
object[] parameters = {"Sunday"};
po.Invoke("AddBusinessDays", parameters);
}
}
}
有什么想法吗?
答案 0 :(得分:5)
您可以使用http://tshirtkings247.com/类访问私有静态方法。
你会以这种方式使用它:
var pt = new PrivateType(typeof(WarrantyDropoffSlip));
object[] parameters = {"Sunday"};
pt.InvokeStatic("AddBusinessDays", parameters);