gpt4 book ai didi

.net-4.0 - 如何配置 Pex 以尊重代码契约?

转载 作者:行者123 更新时间:2023-12-02 18:04:20 25 4
gpt4 key购买 nike

鉴于以下示例代码,我如何配置 Pex 以遵守我的代码契约?

    public static IEnumerable<User> Administrators(this UserGroup userGroup)
{
Contract.Requires(userGroup != null);
Contract.Requires(userGroup.UserList != null);

return userGroup.UserList.Where(ul => ul.IsAdmin == true);
}

当前问题:当我运行 Pex 时,它仍然生成违反指定代码约定的测试用例。

仅供引用:Here are the 'Code Contracts' settings在我的 csproj 文件中。

<小时/>

编辑:做了某事 break in SP1

最佳答案

首先您需要使用 Requires 的类型化版本

使用 ArgumentNullException 作为 T

此外,在您的项目属性中,您需要告诉代码契约使用标准重写器。不要在失败时单击断言;)

Contract.Requires<ArgumentNullException>(i != null);

然后你的代码将抛出一个 argumetn null 异常,并且 pex 可以向你的 pexmethod 添加一个属性来表示允许抛出它,并将创建一个抛出异常的通过测试

然后您可以推广这些并保存单元测试

关于.net-4.0 - 如何配置 Pex 以尊重代码契约?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com