【发布时间】:2015-04-09 12:03:42
【问题描述】:
我有以下 PexMethod:
[PexMethod]
public bool fwAlertConfig_objectConfigExists(
[PexAssumeUnderTest]WinCC target,
[PexAssumeNotNull] List<mixed> alertConfigObject,
[PexAssumeNotNull] ref int configType,
[PexAssumeNotNull] ref List<string> exceptionInfo
)
{
PexAssume.TrueForAll(alertConfigObject, x => x.value != null);
PexAssume.AreElementsNotNull(alertConfigObject);
bool result
= target.fwAlertConfig_objectConfigExists(alertConfigObject, ref configType, ref exceptionInfo);
return result;
}
我故意把[PexAssumeNotNull]和PexAssume放在那里。然而,
当我“运行 Pex 探索”时,这些东西似乎被忽略了,这些是创建的输入:
请注意以下几点:
-
in exceptionInfo在每一行中都是null,尽管它有[PexAssumeNotNull] - 第 2 行:alertConfigObject 是
{null},虽然我定义了PexAssume.AreElementsNotNull(alertConfigObject) - 第 4 行:
new mixed有{value=null},虽然我定义了PexAssume.TrueForAll(alertConfigObject, x => x.value != null)
但是:[PexAssumeNotNull] 非常适用于 alertConfigObject,因为我不再将 null 视为输入。
那么为什么其他假设不起作用呢?
【问题讨论】: