Apa perlengkapan dalam pemrograman?


191

Saya telah mendengar istilah ini berkali-kali (dalam konteks pemrograman) tetapi tidak dapat menemukan penjelasan apa artinya. Adakah artikel atau penjelasan yang bagus?

Jawaban:


195

Saya pikir Anda mengacu pada perlengkapan tes :

Tujuan dari fixture tes adalah untuk memastikan bahwa ada lingkungan yang diketahui dan diperbaiki di mana tes dijalankan sehingga hasilnya dapat diulang. Beberapa orang menyebut ini konteks pengujian.

Contoh perlengkapan:

  • Memuat basis data dengan kumpulan data tertentu yang diketahui
  • Menghapus hard disk dan menginstal instalasi sistem operasi bersih yang dikenal
  • Menyalin satu set file tertentu yang diketahui
  • Persiapan input data dan pengaturan / pembuatan benda palsu atau tiruan

(sumber: wikipedia, lihat tautan di atas)

Berikut juga beberapa contoh praktis dari dokumentasi kerangka 'Tes Google' .


13

Saya pikir tes unit PHP menjelaskan dengan sangat baik tentang ini:

Salah satu bagian yang paling memakan waktu dari tes menulis adalah menulis kode untuk mengatur dunia dalam keadaan diketahui dan kemudian mengembalikannya ke keadaan semula ketika tes selesai. Keadaan yang dikenal ini disebut fixture of the test.

Juga dokumen Yii menggambarkan tes perlengkapan dalam kondisi yang baik:

Tes otomatis perlu dilakukan berkali-kali. Untuk memastikan proses pengujian dapat diulangi, kami ingin menjalankan tes dalam beberapa kondisi yang disebut fixture. Misalnya, untuk menguji fitur pembuatan posting dalam aplikasi blog, setiap kali ketika kami menjalankan tes, tabel yang menyimpan data yang relevan tentang posting (misalnya tabel Posting, tabel Komentar) harus dikembalikan ke keadaan tertentu.

Di sini contoh sederhana tes perlengkapan

<?php
use PHPUnit\Framework\TestCase;

class StackTest extends TestCase
{
    protected $stack;

    protected function setUp()
    {
        $this->stack = [];
    }

    protected function tearDown()
    {
        $this->stack = [];
    }

    public function testEmpty()
    {
        $this->assertTrue(empty($this->stack));
    }

    public function testPush()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', $this->stack[count($this->stack)-1]);
        $this->assertFalse(empty($this->stack));
    }

    public function testPop()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', array_pop($this->stack));
        $this->assertTrue(empty($this->stack));
    }
}
?>

Tes unit PHP ini memiliki fungsi dengan nama setUpdan tearDownsebelum menjalankan tes, Anda mengatur data Anda dan setelah selesai Anda dapat mengembalikannya ke kondisi awal.


7

Istilah fixture bervariasi berdasarkan konteks, bahasa pemrograman atau kerangka kerja.

1. Keadaan yang diketahui dimana tes sedang berjalan

Salah satu bagian yang paling memakan waktu dari tes menulis adalah menulis kode untuk mengatur dunia dalam keadaan diketahui dan kemudian mengembalikannya ke keadaan semula ketika tes selesai. Keadaan yang dikenal ini disebut fixture of the test. Dokumentasi PHP-Unit

Fixture tes (juga dikenal sebagai konteks uji) adalah serangkaian prasyarat atau kondisi yang diperlukan untuk menjalankan tes. Pengembang harus mengatur kondisi baik yang diketahui sebelum pengujian, dan kembali ke kondisi semula setelah pengujian. Wikipedia (xUnit)

2. File yang berisi data sampel

Fixture adalah kata mewah untuk data sampel. Jadwal memungkinkan Anda mengisi basis data pengujian Anda dengan data yang telah ditentukan sebelum pengujian Anda berjalan. Fixture adalah basis data yang independen dan ditulis dalam YAML. Ada satu file per model. RubyOnRails.org

3. Suatu proses yang mengatur kondisi yang diperlukan. 

Fixture pengujian perangkat lunak mengatur sistem untuk proses pengujian dengan menyediakan semua kode yang diperlukan untuk menginisialisasi, sehingga memenuhi prasyarat apa pun yang mungkin ada. Contohnya bisa memuat database dengan parameter yang diketahui dari situs pelanggan sebelum menjalankan tes Anda. Wikipedia


5

Tepat untuk topik itu, JUnit memiliki dokumen yang dijelaskan dengan baik. Inilah tautannya!

Bagian terkait dari artikel ini adalah:

Tes harus dijalankan dengan latar belakang kumpulan objek yang diketahui. Set objek ini disebut perlengkapan uji. Ketika Anda menulis tes, Anda akan sering menemukan bahwa Anda menghabiskan lebih banyak waktu menulis kode untuk mengatur fixture daripada yang Anda lakukan dalam benar-benar menguji nilai.

Hingga taraf tertentu, Anda dapat membuat penulisan kode fixture lebih mudah dengan memperhatikan konstruktor yang Anda tulis. Namun, penghematan yang jauh lebih besar berasal dari berbagi kode fixture. Seringkali, Anda akan dapat menggunakan fixture yang sama untuk beberapa tes berbeda. Setiap kasing akan mengirim pesan atau parameter yang sedikit berbeda ke fixture dan akan memeriksa hasil yang berbeda.

Ketika Anda memiliki perlengkapan yang sama, inilah yang Anda lakukan:

Tambahkan bidang untuk setiap bagian dari fixture. Catatan metode dengan @ org.junit. Sebelum dan inisialisasi variabel dalam metode itu. beberapa test case yang ingin bekerja dengan kombinasi yang berbeda dari 12 Franc Swiss, 14 Franc Swiss, dan 28 Dolar AS, pertama membuat fixture:

public class MoneyTest {
    private Money f12CHF;
    private Money f14CHF;
    private Money f28USD;

    @Before public void setUp() {
    f12CHF= new Money(12, "CHF");
    f14CHF= new Money(14, "CHF");
    f28USD= new Money(28, "USD");
    }
}

2

Di Xamarin.UITest dijelaskan sebagai berikut:

Biasanya, setiap Xamarin. UITest ditulis sebagai metode yang disebut sebagai tes. Kelas yang berisi tes dikenal sebagai fixture tes. Fixture tes berisi tes tunggal atau pengelompokan logis dari tes dan bertanggung jawab atas pengaturan apa pun untuk menjalankan tes dan pembersihan apa pun yang perlu dilakukan ketika tes selesai. Setiap tes harus mengikuti pola Arrange-Act-Assert:

  • Atur - Tes akan mengatur kondisi dan menginisialisasi hal-hal sehingga tes dapat ditindaklanjuti.
  • Act - Tes akan berinteraksi dengan aplikasi, memasukkan teks, menekan tombol, dan sebagainya.
  • Menegaskan - Tes menguji hasil dari tindakan yang dilakukan dalam langkah Undang-undang untuk menentukan kebenaran. Misalnya, aplikasi dapat memverifikasi bahwa pesan kesalahan tertentu ditampilkan.

Tautan untuk artikel asli Kutipan di atas

Dan di dalam kode Xamarin.UITest terlihat seperti berikut:

using System;
using System.IO;
using System.Linq;
using NUnit.Framework;
using Xamarin.UITest;
using Xamarin.UITest.Queries;

namespace xamarin_stembureau_poc_tests
{
    [TestFixture(Platform.Android)]
    [TestFixture(Platform.iOS)]
    public class TestLaunchScreen
    {
        IApp app;
        Platform platform;

        public Tests(Platform platform)
        {
            this.platform = platform;
        }

        [SetUp]
        public void BeforeEachTest()
        {
            app = AppInitializer.StartApp(platform);
        }

        [Test]
        public void AppLaunches()
        {
            app.Screenshot("First screen.");
        }

        [Test]
        public void LaunchScreenAnimationWorks()
        {
            app.Screenshot("Launch screen animation works.");
        }
    }
}

Semoga ini bisa bermanfaat bagi seseorang yang mencari pemahaman yang lebih baik tentang Jadwal dalam Pemrograman.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.