No FAA0001 when `?.` is followed by `Should().BeApproximately`
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 68/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 冷清
- 技术栈
- csharp
- 领域
- testing-qa
调研方向
首先使用 actual?.Amount.Should().BeApproximately(3.14, 0.01) 的 C# 示例重现该问题,然后将 BeApproximately 的 FAA0001 处理与 BeGreaterThan、BePositive 和 BeInRange 进行比较。当分析器针对 BeApproximately 情况报告 FAA0001,同时保留其他 assertions 的现有行为时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Suppose for the sake of this bug report that we have the following type:
public interface IExample {
double Amount { get; }
}
Then if we write the following incorrect test:
public void TestMethod() {
IExample? actual = null;
actual?.Amount.Should().BeApproximately(3.14, 0.01); // no FAA0001 here?!
}
then we get no message from FluentAssertions.Analyzers about the wrong code.
For other assertions, this works fine. For example:
actual?.Amount.Should().BeGreaterThan(3.1); // good, we get 'FAA0001: Use .Should() instead of ?.Should()'
or:
actual?.Amount.Should().BePositive(); // good, we get 'FAA0001: Use .Should() instead of ?.Should()'
or:
actual?.Amount.Should().BeInRange(3.1, 3.2); // good, we get 'FAA0001: Use .Should() instead of ?.Should()'
We need the FAA0001 with .BeApproximately(3.14, 0.01) as well. Without it, the author may think his tests proves actual is an instance where Amount equals 3.14 within a tolerance of 0.01 when in fact actual is a null reference (and no Amount exists).
- 主要语言
- C#
- 星标
- 131
- 派生
- 25
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
fluentassertions/fluentassertions.analyzers 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 58/100
fluentassertions/fluentassertions.analyzers#404 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 58/100
fluentassertions/fluentassertions.analyzers#403 · 6 条评论 ·
-
难度 3/5 1-2 天 新手友好度 42/100
fluentassertions/fluentassertions.analyzers#400 · 2 条评论 ·
-
enhancement
难度 4/5 3-5 天 新手友好度 25/100
-
enhancement
难度 5/5 一周以上 新手友好度 25/100
查看 fluentassertions/fluentassertions.analyzers 的全部 Issue
相似的 Issue
-
area-ai untriaged
难度 2/5 1-3 小时 新手友好度 85/100
dotnet/extensions#7790 ·
维护者通常 1 天内回复
-
P2 testing
难度 1/5 1 小时以内 新手友好度 90/100
维护者通常 1 天内回复
-
area-Infrastructure-coreclr os-ios os-maccatalyst os-tvos untriaged
难度 2/5 1-3 小时 新手友好度 78/100
dotnet/runtime#134766 · 3 条评论 ·
维护者通常 1 天内回复
-
0 - Backlog Bug
难度 2/5 1-3 小时 新手友好度 88/100
BrighterCommand/Brighter#4444 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复