Behaviour change when checking Func for null (4.5.1->5.0.0)
Một pull request liên quan đã được merge.
- #1270 của @SeanKilleen — đã merge
Đánh giá
- Độ khó
- 1/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 72/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- csharp
- Lĩnh vực
- documentation
Hướng nghiên cứu
Tìm tài liệu về các thay đổi gây lỗi tương thích của bản phát hành NUnit 4.6.0; issue không nêu tên tệp, vì vậy hãy bắt đầu bằng cách tìm trong tài liệu các ghi chú di chuyển về TestDelegate và ActualValueDelegate. Thêm ghi chú giải thích rằng Assert.That(testFunc, Is.Not.Null) thực thi delegate kể từ phiên bản 4.6.0, trong khi các phiên bản trước kiểm tra chính delegate đó có phải là null hay không. Công việc hoàn tất khi hành vi di chuyển được ghi lại rõ ràng cho người đọc nâng cấp từ phiên bản 4.5.1.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hi,
I've noticed that with the change from the TestDelegate/ActualValueDelegate (starting with 4.6.0) asserting that a method actually returns a valid non-null delegate now evaluates the delegate but in 4.5.1 and before it was actually checked for null. This might lead to behaviour changes when migrating and it was - at least for me - not obvious by just reading the breaking changes, so maybe it warrants to be mentioned there.
Here's a small working example:
using NUnit.Framework;
using System;
using System.Collections.Generic;
public class TestFuncForNull
{
private readonly HashSet<string> m_HashSet = new();
[Test]
public void TestForNull()
{
Func<bool> testFunc = CreateFunc();
Assert.That(testFunc, Is.Not.Null); // checked for null before 4.6.0, evaluates the testFunc starting with 4.6.0
bool result = testFunc();
Assert.That(result, Is.True);
}
private Func<bool> CreateFunc()
{
return () => m_HashSet.Add("test");
}
}
- Ngôn ngữ chính
- Dockerfile
- Star
- 601
- Fork
- 159
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của nunit/docs
-
type:newpage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Document load-time vs execution-time constraints for test data sources and custom attributesĐang mởarea:adapter area:framework
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 40/100
-
Document the UnhandledException behaviourCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởarea:framework
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 40/100
-
Document support for cancellationtoken, params, and optional arguments with TestCaseSourceCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởarea:framework
-
Document default parallelizability of STA testsCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởarea:framework
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
theforeman/foreman-documentation#5529 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
fossasia/visdom-dev#69 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 74/100
-
sync-en
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
sync-en
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày