?????????????У??????????????????????
??????????е? Public ?????????????????????????ù??????????????????????????????????????????????????????????????????Щ?????????????????Public?????static??(?????????????????????????????? private?? internal ???
??????????????????????????ζ???Щ?? public ???????????е?????????Щ???????????????
????????????????????????????????????????????
??????????η?? public?? ???????????????-- ???????????? Unit Test ?????壬????????????κ??????????С?
????????-- д??????????????????????????????????????????????д????????????????????
??????? InternvalVisibleTo ????--[InternalsVisibleTo(“UnitTestProject.Assembly”)] ?????????????????????????????е???з??????? Internal ??????????????????????????
????????????п??????????????
????????????? PrivateObject/PrivateType -- ????????????????????????????????????????????????????鷳??
????PrivateObject???????????????????PrivateType ??????????????????
????????????????? Calculate ?????£?

 

public class Calculate
{
internal static int AddStatic(int a?? int b)
{
return a + b;
}
private int Add(int a?? int b)
{
return a + b;
}
}

??????????????????в???
??????????????? Add ???????????????

 

[TestMethod]
publicvoidTestPrivateAdd()
{
PrivateObjectpo=newPrivateObject(newCalculate());
Assert.AreEqual(po.Invoke("Add"??1??2)??3);
}

???????????? Internal ?? AddStatic ???????£?

 

[TestMethod]
public void TestInternalStaticAdd()
{
PrivateType po = new PrivateType(typeof(Calculate));
Assert.AreEqual(po.InvokeStatic("AddStatic"?? 1?? 2)?? 3);
}