0Pricing
C# Academy · Pelajaran

Penyiapan xUnit/MSTest, assertion

Pelajari bentuk pengujian (Arrange-Act-Assert), lihat cara assertion membuat pengujian gagal, dan terapkan gagasan tersebut pada atribut MSTest/xUnit.

Penyiapan xUnit/MSTest, assertion adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.

Apa itu pengujian unit?

Tujuan: Menulis pengujian unit yang kecil dan dapat diulang.

  • Proyek pengujian terpisah menggunakan MSTest atau xUnit
  • Setiap pengujian memeriksa satu perilaku
  • Gunakan nama yang jelas dan penegasan

Pola AAA

Pengujian mengikuti Persiapkan → Jalankan → Assert. Di sini kita menyimulasikan penegasan dengan pemeriksaan sederhana.

using System;

public static class MathUtil
{
  // Method under test
  public static int Add(int a, int b)
  {
    return a + b;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Arrange
    int a = 2;
    int b = 3;
    int expected = 5;

    // Act
    int actual = MathUtil.Add(a, b);

    // Assert (manual check for this console demo)
    if (actual == expected)
      Console.WriteLine("PASS: Add returned " + actual);
    else
      Console.WriteLine("FAIL: expected " + expected + " but got " + actual);
  }
}

Perilaku penegasan

Sebuah penegasan melempar pengecualian jika terjadi ketidakcocokan. Kerangka kerja nyata bekerja dengan cara serupa (API yang lebih kaya, laporan yang lebih baik).

using System;

public static class Assert
{
  public static void AreEqual(int expected, int actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected " + expected + ", actual " + actual);
  }

  public static void IsTrue(bool condition, string message)
  {
    if (!condition) throw new Exception("IsTrue failed: " + message);
  }
}

public static class MathUtil
{
  public static int Mul(int a, int b) { return a * b; }
}

public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      int r = MathUtil.Mul(2, 4);
      Assert.AreEqual(8, r);                 // pass
      Assert.IsTrue(r % 2 == 0, "even");     // pass
      Console.WriteLine("All assertions passed.");
    }
    catch (Exception ex)
    {
      Console.WriteLine("TEST FAILED: " + ex.Message);
    }
  }
}

Contoh pengujian yang berhasil

Setiap pengujian memeriksa satu perilaku. Dalam MSTest/xUnit nyata, Assert yang gagal menandai pengujian dengan warna merah.

using System;

public static class StringUtil
{
  public static string Repeat(string s, int n)
  {
    if (n < 0) throw new ArgumentOutOfRangeException("n");
    string r = "";
    for (int i = 0; i < n; i++) r += s;
    return r;
  }
}

public static class Assert
{
  public static void AreEqual(string expected, string actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected [" + expected + "], actual [" + actual + "]");
  }
}

public class Program
{
  static void TestRepeat_Happy()
  {
    string got = StringUtil.Repeat("ab", 3);
    Assert.AreEqual("ababab", got); // pass
  }

  static void TestRepeat_EmptyTimesZero()
  {
    string got = StringUtil.Repeat("x", 0);
    Assert.AreEqual("", got); // pass
  }

  public static void Main(string[] args)
  {
    try { TestRepeat_Happy(); Console.WriteLine("PASS: Happy"); } catch (Exception ex) { Console.WriteLine("FAIL: Happy -> " + ex.Message); }
    try { TestRepeat_EmptyTimesZero(); Console.WriteLine("PASS: Zero"); } catch (Exception ex) { Console.WriteLine("FAIL: Zero -> " + ex.Message); }
  }
}

Pemetaan MSTest vs xUnit

Dasar-dasar MSTest:

  • [TestClass] pada class
  • [TestMethod] pada setiap pengujian
  • Assert.AreEqual/IsTrue/AreNotEqual…

Dasar-dasar xUnit:

  • [Fact] untuk metode pengujian
  • Assert.Equal/True/False…
  • Tidak diperlukan atribut class pengujian

Kiat penamaan & cakupan

Kiat:

  • Beri nama pengujian seperti Method_Scenario_ExpectedResult
  • Satu penegasan atau satu perilaku per pengujian
  • Buat pengujian tetap kecil dan mandiri

Penegasan menyebabkan kegagalan

Pemeriksaan singkat: Apa yang sebenarnya menyebabkan pengujian unit gagal di MSTest atau xUnit?

Ringkasan

Ringkasan: Gunakan pola AAA, bandingkan nilai yang diharapkan dengan nilai aktual melalui penegasan, dan gunakan MSTest ([TestMethod]) atau xUnit ([Fact]).

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyiapan xUnit/MSTest, assertion” gratis?

Ya — teks lengkap “Penyiapan xUnit/MSTest, assertion” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Penyiapan xUnit/MSTest, assertion”?

Pelajari bentuk pengujian (Arrange-Act-Assert), lihat cara assertion membuat pengujian gagal, dan terapkan gagasan tersebut pada atribut MSTest/xUnit. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.

Berapa lama pelajaran “Penyiapan xUnit/MSTest, assertion” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyiapan xUnit/MSTest, assertion
  2. Fake melalui antarmuka; pembuat data pengujian
  3. Men-debug pengujian yang gagal
← Kembali ke C# Academy