.NET Core - Thư viện thử nghiệm

Trong chương này, chúng ta sẽ kiểm tra StringLibrary của mình và để làm như vậy, chúng ta cần sắp xếp lại các dự án của mình để chúng ta có thể tuân theo quy ước mặc định.

Hãy để chúng tôi mở global.json tập tin.

{ 
   "projects": [ "src", "test" ], 
   "sdk": { 
      "version": "1.0.0-preview2-003131" 
   } 
}

Ở đầu tệp này, bạn sẽ thấy cài đặt dự án và nó thiết lập một số thư mục như srctest theo mặc định.

Theo quy ước, chúng ta phải có các dự án trong các thư mục này, đây là quy ước mới và sẽ được sử dụng như một phần của .NET Core.

Trong Trình khám phá giải pháp, bạn có thể thấy rằng cả dự án bảng điều khiển và dự án thư viện đều nằm trong src trong khi dự án Thử nghiệm ở bên trong test thư mục.

Và cấu trúc dự án trong Giải pháp Explorer không đại diện cho vị trí các dự án tồn tại trên đĩa. Bây giờ chúng ta hãy mở thư mục Giải pháp và bạn sẽ thấy rằngStringLibrary dự án không nằm trong src thư mục.

Bạn có thể thấy rằng cả hai srctest các thư mục ánh xạ tới quy ước được chỉ định trong global.jsontập tin. Tuy nhiên, chúng tôi có một dự án StringLibrary nằm ngoài quy ước. Bây giờ chúng ta hãy thêmStringLibrary dự án bên trong src thư mục.

Trong thư mục src, chúng tôi có hai dự án và chúng tôi cần khắc phục sự cố để có thể sử dụng tất cả các dự án đúng cách. Chúng ta hãy quay lại Visual Studio và nhấp chuột phải vào dự án StringLibrary và chọn tùy chọn Remove. Nó sẽ không xóa nó, nhưng nó sẽ chỉ xóa dự án.

Bây giờ nhấp chuột phải vào thư mục src và chọn Add → Existing Project…

Duyệt đến dự án StringLibrary hiện nằm trong src thư mục, chọn StringLibrary.csproj tập tin và nhấp vào Open.

Bây giờ chúng tôi phải xóa tham chiếu của StringLibrary từ project.json tệp của ứng dụng bảng điều khiển.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
      "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Lưu các thay đổi và sau đó thêm một tham chiếu của StringLibrary một lần nữa trong dự án bảng điều khiển của bạn.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
   "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { 
            "StringLibrary": { 
               "target": "project" 
            } 
         }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Bây giờ mọi thứ sẽ hoạt động trở lại và bạn có thể xây dựng StringLibrary và sau đó FirstApp(dự án bảng điều khiển) mà không có bất kỳ lỗi nào. Bây giờ chúng ta hãy kiểm tra chức năng StringLibrary bằng xunit. Chúng tôi cần thêm tham chiếu của StringLibrary vào dự án thử nghiệm của mình. Nhấp chuột phải vào tài liệu tham khảo của dự án StringLibraryTests và chọn Thêm tài liệu tham khảo…

Nhấp chuột OK sẽ thêm một tham chiếu về StringLibrarycho dự án thử nghiệm của chúng tôi. Bây giờ hãy để chúng tôi thay thế mã sau trongTests.cs tập tin.

using System; 
using Xunit; 
using StringLibrary; 
  
namespace Tests { 
   public class Tests { 
      [Fact] 
      public void StartsWithUpperCaseTest() { 
         string input = "Mark"; 
         Assert.True(input.StartsWithUpper()); 
      } 
      [Fact] 
      public void StartsWithLowerCaseTest() { 
         string input = "mark"; 
         Assert.True(input.StartsWithLower()); 
      } 
      [Fact] 
      public void StartsWithNumberCaseTest() { 
         string input = "123"; 
         Assert.True(input.StartsWithNumber()); 
      } 
   } 
}

Bạn có thể thấy rằng chúng tôi có ba phương pháp kiểm tra sẽ kiểm tra chức năng của StringLibrary. Hãy để chúng tôi nhấp vàoRun All và bạn sẽ thấy kết quả sau trong Test Explorer.

Bạn cũng có thể chạy các bài kiểm tra từ dòng lệnh. Hãy để chúng tôi mở dấu nhắc lệnh và thực hiệndotnet test chỉ huy.