我一直在尝试让一些 PEX 示例正常工作,但是任何使用 DateTime.TryParse/DateTime.Parse 的东西都会产生令人失望的结果。Pex 没有提供任何有趣的参数,如果我用可达到的含义包装它,它只是说 1 Missed Goal。
我认为这一定是因为我收到的有关 DateTimeParse.TryParse 未检测的消息,但为什么它首先没有检测?为什么文档“Microsoft Pex 的参数化测试模式”使用 DateTime 作为示例,如果它没有做任何有趣的事情?
Uninstrumented 意味着 Pex 没有探索过代码,也不知道它的路径,所以不能确保它会探索你代码中的所有路径,因为它不知道如何探索DateTime.TryParse
, in 中的路径为了生成输出,然后将其输入到您的代码路径。我希望你能遵循这一点。
因此,如果您允许 Pex 检测DateTime
类,它应该能够计算出代码中的路径并生成一些有用的探索。看看使用 Microsoft Pex练习 4 进行的参数化单元测试,希望它能够比您引用的文档更好地解释它。Pex 只会检测您告诉它的对象,因为这可能是一项昂贵的操作(并且可能最终得到一个深图)。
在 Pex 探索的结果中,Pex 应该在信息栏中为您提供有关需要检测的类型的消息。