Đề Xuất 5/2022 # Unit Testing Ứng Dụng C# Dùng .net Core Và Visual Studio Code # Top Like

Xem 12,969

Cập nhật nội dung chi tiết về Unit Testing Ứng Dụng C# Dùng .net Core Và Visual Studio Code mới nhất ngày 18/05/2022 trên website Hanoisoundstuff.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến nay, bài viết này đã thu hút được 12,969 lượt xem.

--- Bài mới hơn ---

  • 【Hướng Dẫn】 Cách Viết Thư Upu Lần Thứ 50
  • Làm Sao Giỏi Văn, Giỏi Viết Lẫn Lách
  • Hướng Dẫn Cách Viết Văn Hay Cho Các Bạn Học Sinh Mọi Lứa Tuổi
  • Gia Sư Môn Văn Chia Sẻ Cách Viết Văn Hay Và Có Cảm Xúc
  • Cách Viết Văn Hay Cho Người Không Giỏi Văn, Dành Cho Người Mới
  • Trong bài này tôi sẽ chia sẻ cách viết unit test một ứng dụng C# ( Khóa học C# tại Techmaster) đơn giản bằng test framework xUnit, tập trung vào giới thiệu cách sử dụng .NET Core CLI và Visual Studio Code.

    Tạo 1 .NET Core solution

    Khi các bạn làm quen lần đầu, để tạo 1 ứng dụng HelloWorld ai cũng từng chạy câu lệnh `dotnet new console -o HelloWorld`. Câu lệnh trước sẽ tạo một ứng project dạng console. Vậy nếu chương trình của bạn lớn hơn và muốn có nhiều projects (console, class hay tests) trong cùng 1 chỗ và quản lý chung thì làm sao?

    cd Desktop # chuyển đường dẫn đến chỗ bạn muốn chứa solution dotnet new sln -o UnitTestXunit # tạo 1 solution tên UnitTestXunit

    Quan tâm đến lập trình, bạn đang tìm hiểu về C#, hay muốn bắt đầu một công việc mới hay nâng cao kĩ năng, Techmaster luôn có chương trình thực tập giúp các bạn phát triển kĩ năng cũng như hỗ trợ tìm kiếm công việc.

    Tạo Các Projects Bên Trong Solution

    Bây giờ bạn đã 1 .NET Core solution và có thể tạo ra nhiều projects con bên trong. Chúng ta sẽ tạo 1 MathLib class và 1 xUnit test project.

    Tạo C# Class

    cd UnitTestXunit dotnet new classlib -o MathLib # Tạo 1 MathLib class dotnet sln add ./MathLib/MathLib.csproj # Thêm class project vào trong solution

    Tạo xUnit Test Project

    Với test project, chúng ta cũng cần thêm reference đến class MathLib mà ta sẽ kiểm thử

    mkdir MathLib.Tests cd MathLib.Tests dotnet new xunit # Tạo xUnit test template dotnet add reference ../MathLib/MathLib.csproj # Thêm reference đến class cần kiểm thử cd .. dotnet sln add ./MathLib.Tests/MathLib.Tests.csproj

    Sau khi hoàn thành các bước trên, bạn sẽ có 1 solution UnitTestXunit trong đó chứa 2 projects con là class MathLib và xUnit test project MathLib.Tests như sau

    Giả lập MathLib class của chúng ta sẽ có các hàm để tính toán. Tên class mặc định là Class1, tôi sẽ đổi cả tên file `Class1.cs` và tên class trong file thành *SimpleMath*. Class này chứa 4 phương thức tính cộng, trừ, nhân, chia, số dư của số nguyên như sau

    Viết test cases kiểm thử các phương thức trên

    Chuyển sang folder MathLib.Tests, mặc định file test ban đầu là `UnitTest1.cs` và tên class cũng vậy, tôi sẽ đổi thành *SimpleMathTest*. Lúc này class SimpleMathTest sẽ là 1 bộ test dùng để kiểm thử class SimpleMath của MathLib. Mỗi phương thức trong class này sẽ là 1 test case. Lưu ý, nên đặt tên phương thức có nghĩa, ví dụ kiểm thử phương thức `Add` thì tên test case cũng như tên phương thức là `AddTest`, không nên chỉ để `Test1`, `Test2`,...

    using System; using Xunit; using MathLib; namespace MathLib.Tests { public class SimpleMathTest { public void SubtractTest() { var res = SimpleMath.Subtract(10, 3); Assert.True(7 == res); } public void DivideTest() { var res = SimpleMath.Divide(21, 3); Assert.Equal( 7, res); } vs ` và `` bạn có 1 unit test bình thường như mọi framework khác và phương thức test này không nhận tham số đầu vào nào hết.

    `, bạn có thể dùng thêm ``, ta có thể viết test cases như sau:

    using System; using Xunit; using MathLib; namespace MathLib.Tests { public class SimpleMathTest { public void AddTest(int a, int b, int expectedRes) { var res = SimpleMath.Add(a, b); Assert.True(expectedRes == res); } public void SubtractTest(int a, int b, int expectedRes) { var res = SimpleMath.Subtract(a, b); Assert.True(expectedRes == res); } public void MultiplyTest(int a, int b, int expectedRes) { var res = SimpleMath.Multiply(a, b); Assert.Equal(expectedRes, res); } public void DivideTest(int a, int b, int expectedRes) { var res = SimpleMath.Divide(a, b); Assert.Equal( expectedRes, res); } public void RemainderTest(int a, int b, int expectedRes) { var res = SimpleMath.Remainder(a, b); Assert.Equal( expectedRes, res); } } }

    Các bạn có thể thấy, khi chúng ta có nhiều bộ dữ liệu muốn kiểm tra, ta có thể dùng `[Theory]` để chạy 1 test case qua tất cả các trường hợp dữ liệu.

    Chạy Test

    Để chạy test, bạn có thể gọi `dotnet test` luôn khi đang ở ngoài solution hoặc chỏ đường dẫn trên terminal vào MathLib.Tests

    dotnet test

    Nếu test thất bại, xUnit sẽ thông báo test case nào thất bại cũng như kết quả của test case đó

    Quan tâm đến lập trình, bạn đang tìm hiểu về C#, hay muốn bắt đầu một công việc mới hay nâng cao kĩ năng, Techmaster luôn có chương trình thực tập giúp các bạn phát triển kĩ năng cũng như hỗ trợ tìm kiếm công việc.

    --- Bài cũ hơn ---

  • Unit Test Trong C# Với Nunit Và Moq
  • Hướng Dẫn Viết Unit Test Trong React
  • Hướng Dẫn Viết Unit Test Trong Angular
  • Unit Test Là Gì? 10 Frameworks Unit Test Cho Javascript
  • Tìm Hiểu Về Jestjs, Viết Unit Test Cho Javascript
  • Bạn đang đọc nội dung bài viết Unit Testing Ứng Dụng C# Dùng .net Core Và Visual Studio Code trên website Hanoisoundstuff.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!

  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100