问题测试私有静态函数

时间:2015-06-22 15:39:01

标签: c# unit-testing

我在找到私有静态方法时遇到问题。我的老板希望对它进行测试(尽管我知道测试并不是真的有必要)。

以下是我要测试的代码:

 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);
        }
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可以使用http://tshirtkings247.com/类访问私有静态方法。

你会以这种方式使用它:

var pt = new PrivateType(typeof(WarrantyDropoffSlip));
object[] parameters = {"Sunday"};
pt.InvokeStatic("AddBusinessDays", parameters);