Вот мой основной класс, который я хочу проверить. Он содержит один закрытый метод.Как получить и установить значение для объекта с помощью классов Shim в C# Microsoft подделывает модульное тестирование?
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