问题
我正在努力使我的 Fluent Validation RuleSet 工作,目前它没有,而且我不知道为什么会发生这种情况,一切似乎都很好。我想以某种方式进入执行验证本身的代码,但是 RuleSet lambda 是 ExpressionTrees,它甚至不能提供很差的调试体验。
问题
有没有办法调试 RuleSet 逻辑以查看 RuleSet 内部发生了什么?
我正在努力使我的 Fluent Validation RuleSet 工作,目前它没有,而且我不知道为什么会发生这种情况,一切似乎都很好。我想以某种方式进入执行验证本身的代码,但是 RuleSet lambda 是 ExpressionTrees,它甚至不能提供很差的调试体验。
有没有办法调试 RuleSet 逻辑以查看 RuleSet 内部发生了什么?
FluentValidation 是开源的,所以理论上你可以从https://github.com/JeremySkinner/FluentValidation的 repo 下载代码,然后加载解决方案,直接引用它,然后逐步执行。
希望这会让你到达你需要的地方,但我相信如果你提供你的规则和一些显示失败的单元测试,这里有人可以提供帮助。
当前版本的 FluentValidation 允许您使用TestValidate
扩展方法对验证器进行单元测试。还有一个异步版本可用。
调用此方法,传递一个对象进行验证,将返回一个TestValidationResult<>
对象,该对象具有 2 个有用的方法ShouldHaveValidationErrorFor
,
ShouldNotHaveValidationErrorFor
可用于检查测试是否通过或失败。
该文档可以在这里找到https://docs.fluentvalidation.net/en/latest/testing.html
无法使用 Visual Studio 工具调试 Fluent Validator 代码。您需要注释要测试的代码 (RuleFor) 的特定部分。继续这样做,直到所有规则都经过测试。