18

问题

我正在努力使我的 Fluent Validation RuleSet 工作,目前它没有,而且我不知道为什么会发生这种情况,一切似乎都很好。我想以某种方式进入执行验证本身的代码,但是 RuleSet lambda 是 ExpressionTrees,它甚至不能提供很差的调试体验。

问题

有没有办法调试 RuleSet 逻辑以查看 RuleSet 内部发生了什么?

4

3 回答 3

2

FluentValidation 是开源的,所以理论上你可以从https://github.com/JeremySkinner/FluentValidation的 repo 下载代码,然后加载解决方案,直接引用它,然后逐步执行。

希望这会让你到达你需要的地方,但我相信如果你提供你的规则和一些显示失败的单元测试,这里有人可以提供帮助。

于 2013-07-21T00:45:33.307 回答
1

当前版本的 FluentValidation 允许您使用TestValidate扩展方法对验证器进行单元测试。还有一个异步版本可用。

调用此方法,传递一个对象进行验证,将返回一个TestValidationResult<>对象,该对象具有 2 个有用的方法ShouldHaveValidationErrorForShouldNotHaveValidationErrorFor可用于检查测试是否通过或失败。

该文档可以在这里找到https://docs.fluentvalidation.net/en/latest/testing.html

于 2020-12-13T23:56:26.470 回答
0

无法使用 Visual Studio 工具调试 Fluent Validator 代码。您需要注释要测试的代码 (RuleFor) 的特定部分。继续这样做,直到所有规则都经过测试。

于 2020-07-19T18:56:22.757 回答