Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Behaviour change when checking Func for null (4.5.1->5.0.0)

Đã đóng Phù hợp với người mới
#1,262 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ả

area:framework

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

Mở trong Codespaces

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.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của nunit/docs

Tất cả issue của nunit/docs

Issue tương tự

Thêm issue về Documentation

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.