为什么Method DateTimeParse.TryParse(String,DateTimeFormatInfo,DateTimeStyles,DateTime&)Uninstrumented?

时间:2011-10-27 17:49:57

标签: c# pex

我一直试图让一些PEX样本正常工作,但任何使用DateTime.TryParse / DateTime.Parse的内容都会产生令人失望的结果。 Pex没有提出任何有趣的参数,如果我用可达到的含义包装它,它只是说1个错过的目标。

我认为这一定是因为我收到的消息是关于DateTimeParse.TryParse未被检测到的,但为什么它首先没有被检测?为什么文档“Microsoft Pex的参数化测试模式”使用DateTime作为示例,如果它没有任何意义?

1 个答案:

答案 0 :(得分:1)

Uninstrumented意味着Pex没有探索代码并且不知道它的路径,因此无法确保它将探索代码中的所有路径,因为它不知道如何探索路径在DateTime.TryParse中,为了生成输出,然后输入到您的代码路径。我希望你能遵循这一点。

因此,如果您允许Pex检测DateTime类,它应该能够计算代码中的路径并生成一些有用的探索。看看Parameterized Unit Testing with Microsoft Pex练习4,希望能比你引用的文档更好地解释它。 Pex只会检测你告诉它的对象,因为这是一个可能很昂贵的操作(最终可能会有一个深度图)。

在Pex Explorations的结果中,Pex应该在信息栏中给你一个关于需要检测的类型的消息。