0
这是我想要测试的主要课程。它包含一个私有方法。如何使用C#中的Shim类获取和设置对象的值微软假冒单元测试?
Public class MyClass
{
private bool IsWorkDone(MyItem item, string name)
{
using (MyThing thingObj = new MyThing(item.ID))
{
using (MyWork workObj = thingObj.Open())
{
try
{
return false;
}
}
}
return true;
}
}
在我的测试类我已经写了下面的方法
public void CheckIsWorkDoneTest()
{
using (ShimsContext.Create())
{
MyItem myitem = new ShimMyItem() {
itemGet =() => new ShimMyItem()
{
IDGet =() => new Guid();
}
};
ShimMyClass.AllInstances.isWorkDoneItemString = (MyClass, MyItem, MyName) => "Here I'm stuck. I need help from stackoverflow users"
PrivateObject objMyClass = new PrivateObject(typeof(MyClass));
object[] parameters = new object[2] { myItem, workName };
bool result = Convert.ToBoolean(objMyClass.Invoke("IsWorkDone", parameters));
Assert.AreEqual(result,true);
}
我想设置为从声明oSite对象的值=使用>”(MyThing thingObj =新MyThing(item.ID)) “从我的主MyClass类。 在调试此行时抛出对象引用未设置为实例错误。
因此,使用ShimMyClass.Allinstance如何获取或设置它的值?
我已经解决了它在我的测试方法中使用下面的代码: –
很高兴听到你得到它的工作。总是感觉良好,取得一些进展。 – doobop