我在获取私有(private)静态方法时遇到问题。我的老板希望对此进行测试(尽管我知道这并不是真正需要测试的)。
这是我要测试的代码:
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);
}
}
}
有什么想法吗?
最佳答案
您可以使用 PrivateType访问私有(private)静态方法的类。
您将以这种方式使用它:
var pt = new PrivateType(typeof(WarrantyDropoffSlip));
object[] parameters = {"Sunday"};
pt.InvokeStatic("AddBusinessDays", parameters);
关于c# - 发布测试私有(private)静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30984183/