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 để có thể tuân theo quy ước mặc định. Hãy để chúng tôi mở tệp global.json .
{
"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ư src và kiểm tra 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 Solution Explorer, 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 thư mục src trong khi dự án Thử nghiệm nằm trong thư mục thử nghiệm .
Và cấu trúc dự án trong Solution Explorer không đại diện cho nơi 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ằng dự án StringLibrary không nằm trong thư mục src .
Bạn có thể thấy rằng cả hai thư mục src và test đều ánh xạ tới quy ước được chỉ định trong tệp global.json . Tuy nhiên, chúng tôi có một dự án StringLibrary không theo quy ước. Bây giờ chúng ta hãy thêm dự án StringLibrary bên trong thư mục src .
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ố để chúng tôi 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 Xóa. 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 Thêm → Dựán hiện tại…
Duyệt đến dự án StringLibrary hiện nằm trong thư mục src , chọn tệp StringLibrary.csproj và nhấp vào Mở .
Bây giờ chúng ta phải xóa tham chiếu StringLibrary khỏi tệp project.json 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 lại tham chiếu StringLibrary vào 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 đó là FirstApp (dự án bảng điều khiển) mà không gặp 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 StringLibrary vào dự án thử nghiệm của mình. Nhấp chuột phải vào dự án References of StringLibraryTests và chọn Add Reference…
Nhấp vào OK để thêm tham chiếu StringLibrary vào dự án thử nghiệm của chúng tôi. Bây giờ chúng ta hãy thay đoạn mã sau vào tệp Tests.cs
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 thức kiểm tra sẽ kiểm tra chức năng của StringLibrary. Hãy để chúng tôi nhấp vào liên kết Run All và bạn sẽ thấy đầu ra sau trong Test Explorer.
Bạn cũng có thể chạy thử nghiệm từ dòng lệnh. Hãy để chúng tôi mở dấu nhắc lệnh và thực hiện lệnh kiểm tra dotnet .