Я боролся с этим в течение часа этим днем и не мог найти ответ нигде. Поиграв самостоятельно, я смог придумать решение, которое сработало для меня.
string firstOutParam = "first out parameter string";
string secondOutParam = 100;
mock.SetupAllProperties();
mock.Setup(m=>m.Method(out firstOutParam, out secondOutParam)).Returns(value);
Ключевым здесь является mock.SetupAllProperties();
, в котором будут выделены все свойства для вас. Это может не работать в каждом сценарии сценария, но если все, о чем вы заботитесь, получает return value
из YourMethod
, тогда это будет работать нормально.
Я смог достичь своей цели, вставив nodePath = item.previous_element.previous_element после строки 10. Мой результат был следующим:
def alarms(self,soup):
alarms=soup.find_all('toOffnormal')
#comments=soup.findAll(text=lambda text:isinstance(text, Comment))
nodeStartList=[]
for alarm in alarms:
nodeStart=alarm.parent.parent.parent
nodeStartList.append(nodeStart)
dataList=[]
for item in nodeStartList:
nodeName=item['name']
nodePath=item.previous_element.previous_element
#for comment in comments:
#x='/'+nodeName
#if x in comment:
#nodePath = comment
#if nodePath in comments:
#comments.remove(nodePath)
if item.find('timeDelay')!= None:
timeDelay=item.find('timeDelay').get_text("|", strip=True)
else:
timeDelay='0'
if item.find('eventEnable')!=None:
toOffnormal=item.find('toOffnormal').get_text("| ", strip=True)
toFault=item.find('toFault').get_text("| ", strip=True)
toNormal=item.find('toNormal').get_text("| ", strip=True)
else:
toOffnormal='false'
toFault='false'
toNormal='false'
alarmText=item.find('alarmText').get_text("| ", strip=True)
if item.find('highLimit')!= None:
highLimit=item.find('highLimit').get_text("| ", strip=True)
else:
highLimit='N/A'
if item.find('lowLimit')!= None:
lowLimit=item.find('lowLimit').get_text("| ", strip=True)
else:
lowLimit='N/A'
if item.find('deadband'):
deadband=item.find('deadband').get_text("| ", strip=True)
else:
deadband='N/A'
if item.find('lowLimitEnabled'):
lowLimitEnabled=item.find('lowLimitEnabled').get_text("| ", strip=True)
else:
lowLimitEnabled='false'
if item.find('highLimitEnabled'):
highLimitEnabled=item.find('highLimitEnabled').get_text("| ", strip=True)
else:
highLimitEnabled='false'
itemList=[nodeName,nodePath,timeDelay,toOffnormal,toFault,toNormal,alarmText,highLimit,lowLimit,deadband,lowLimitEnabled,highLimitEnabled]
dataList.append(itemList)
self.df=pandas.DataFrame(dataList)
self.df.columns=['pointName','pointPath','timeDelay','toOffnormal','toFault','toNormal','alarmText','highLimit','lowLimit','deadband','lowLimitEnabled','highLimitEnabled']
return self.df