Đồ đạc trong lập trình là gì?


188

Tôi đã nghe về thuật ngữ này nhiều lần (trong bối cảnh lập trình) nhưng không thể tìm thấy bất kỳ lời giải thích nào về ý nghĩa của nó. Bất kỳ bài viết hay giải thích?

Câu trả lời:


192

Tôi nghĩ rằng bạn đang đề cập đến đồ đạc thử nghiệm :

Mục đích của một trận đấu thử nghiệm là để đảm bảo rằng có một môi trường cố định và nổi tiếng trong đó các thử nghiệm được chạy để kết quả được lặp lại. Một số người gọi đây là bối cảnh thử nghiệm.

Ví dụ về đồ đạc:

  • Đang tải cơ sở dữ liệu với một bộ dữ liệu cụ thể, đã biết
  • Xóa đĩa cứng và cài đặt cài đặt hệ điều hành sạch đã biết
  • Sao chép một tập hợp các tệp đã biết cụ thể
  • Chuẩn bị dữ liệu đầu vào và thiết lập / tạo các đối tượng giả hoặc giả

(nguồn: wikipedia, xem liên kết ở trên)

Đây cũng là một số ví dụ thực tế từ tài liệu của khung 'Google Test' .


13

Tôi nghĩ các bài kiểm tra đơn vị PHP có giải thích rất tốt về điều này:

Một trong những phần tốn nhiều thời gian nhất của bài kiểm tra viết là viết mã để thiết lập thế giới ở trạng thái đã biết và sau đó đưa nó về trạng thái ban đầu khi bài kiểm tra hoàn tất. Trạng thái đã biết này được gọi là vật cố của bài kiểm tra.

Ngoài ra các tài liệu Yii mô tả thử nghiệm đồ đạc trong một hình dạng tốt:

Kiểm tra tự động cần phải được thực hiện nhiều lần. Để đảm bảo quá trình thử nghiệm có thể lặp lại, chúng tôi muốn chạy thử nghiệm ở một số trạng thái được gọi là vật cố định. Ví dụ: để kiểm tra tính năng tạo bài đăng trong ứng dụng blog, mỗi lần chúng tôi chạy thử nghiệm, các bảng lưu trữ dữ liệu liên quan về bài đăng (ví dụ: bảng Đăng, bảng Nhận xét) phải được khôi phục về một số trạng thái cố định.

Dưới đây là ví dụ đơn giản về kiểm tra đồ đạc

<?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));
    }
}
?>

Kiểm tra đơn vị PHP này có các chức năng với các tên setUptearDowntrước khi chạy thử nghiệm, bạn thiết lập dữ liệu của mình và khi hoàn tất, bạn có thể khôi phục chúng về trạng thái ban đầu.


6

Thuật ngữ cố định khác nhau dựa trên bối cảnh, ngôn ngữ lập trình hoặc khung.

1. Một trạng thái đã biết mà thử nghiệm đang chạy

Một trong những phần tốn nhiều thời gian nhất của bài kiểm tra viết là viết mã để thiết lập thế giới ở trạng thái đã biết và sau đó đưa nó về trạng thái ban đầu khi bài kiểm tra hoàn tất. Trạng thái đã biết này được gọi là vật cố của bài kiểm tra. Tài liệu PHP-Unit

Một vật cố thử nghiệm (còn được gọi là bối cảnh thử nghiệm) là tập hợp các điều kiện tiên quyết hoặc trạng thái cần thiết để chạy thử nghiệm. Nhà phát triển nên thiết lập trạng thái tốt đã biết trước các thử nghiệm và trở về trạng thái ban đầu sau các thử nghiệm. Wikipedia (xUnit)

2. Một tệp chứa dữ liệu mẫu

Lịch thi đấu là một từ ưa thích cho dữ liệu mẫu. Lịch thi đấu cho phép bạn điền vào cơ sở dữ liệu thử nghiệm của mình với dữ liệu được xác định trước khi chạy thử. Lịch thi đấu là cơ sở dữ liệu độc lập và được viết bằng YAML. Có một tệp cho mỗi mô hình. RubyOnRails.org

3. Một quá trình thiết lập một trạng thái cần thiết. 

Một lịch thi thử phần mềm thiết lập hệ thống cho quy trình kiểm thử bằng cách cung cấp cho nó tất cả các mã cần thiết để khởi tạo nó, do đó đáp ứng mọi điều kiện tiên quyết có thể có. Một ví dụ có thể tải lên cơ sở dữ liệu với các tham số đã biết từ trang web của khách hàng trước khi chạy thử nghiệm của bạn. Wikipedia


5

Chính xác đến chủ đề đó, JUnit có một tài liệu được giải thích rõ ràng. Đây là đường dẫn!

Phần liên quan của bài viết là:

Các thử nghiệm cần phải chạy trên nền của một tập hợp các đối tượng đã biết. Tập hợp các đối tượng này được gọi là một vật cố thử nghiệm. Khi bạn đang viết bài kiểm tra, bạn sẽ thường thấy rằng bạn dành nhiều thời gian hơn để viết mã để thiết lập lịch thi đấu so với khi bạn thực hiện kiểm tra các giá trị.

Ở một mức độ nào đó, bạn có thể làm cho việc viết mã lịch thi đấu dễ dàng hơn bằng cách chú ý cẩn thận đến các nhà xây dựng mà bạn viết. Tuy nhiên, một khoản tiết kiệm lớn hơn nhiều đến từ việc chia sẻ mã lịch thi đấu. Thông thường, bạn sẽ có thể sử dụng cùng một vật cố cho một số thử nghiệm khác nhau. Mỗi trường hợp sẽ gửi các thông điệp hoặc thông số hơi khác nhau đến trận đấu và sẽ kiểm tra các kết quả khác nhau.

Khi bạn có một vật cố chung, đây là những gì bạn làm:

Thêm một trường cho từng phần của vật cố Chú thích một phương thức với @ org.junit. Trước đó và khởi tạo các biến trong phương thức đó Chú thích một phương thức với @ org.junit. Sau đó, để phát hành bất kỳ tài nguyên cố định nào bạn đã phân bổ trong setUp Ví dụ, để viết một số trường hợp thử nghiệm muốn làm việc với các kết hợp khác nhau của 12 Franc Thụy Sĩ, 14 Franc Thụy Sĩ và 28 Đô la Mỹ, trước tiên tạo ra một vật cố định:

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

Trong Xamarin.UITest, nó được giải thích như sau:

Thông thường, mỗi Xamarin.UITest được viết dưới dạng phương pháp được gọi là kiểm tra. Lớp có chứa bài kiểm tra được gọi là vật cố kiểm tra. Thiết bị kiểm tra chứa một thử nghiệm đơn lẻ hoặc một nhóm thử nghiệm hợp lý và chịu trách nhiệm cho bất kỳ thiết lập nào để thực hiện chạy thử nghiệm và mọi hoạt động dọn dẹp cần được thực hiện khi thử nghiệm kết thúc. Mỗi bài kiểm tra phải tuân theo mẫu Arrange-Act-Assert:

  • Sắp xếp - Thử nghiệm sẽ thiết lập các điều kiện và khởi tạo mọi thứ để thử nghiệm có thể được thực hiện.
  • Act - Bài kiểm tra sẽ tương tác với ứng dụng, nhập văn bản, nhấn nút, v.v.
  • Khẳng định - Bài kiểm tra kiểm tra kết quả của các hành động được thực hiện trong bước Act để xác định tính chính xác. Ví dụ, ứng dụng có thể xác minh rằng một thông báo lỗi cụ thể được hiển thị.

Liên kết cho bài viết gốc của đoạn trích trên

Và trong mã Xamarin.UITest, nó trông giống như sau:

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.");
        }
    }
}

Hy vọng điều này có thể hữu ích cho những người đang tìm kiếm hiểu rõ hơn về Lịch thi đấu trong Lập trình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.