SES Test Case (Unit testing framework.)

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by Solistra, Apr 11, 2014.

  1. Solistra

    Solistra Veteran Veteran

    Messages:
    593
    Likes Received:
    241
    SES Test Case v1.0
    by Solistra
    Introduction
    This script provides a simple unit testing framework for RPG Maker VX Ace with very simple expectation-style formatting for test cases. Essentially, this script allows you to use test-driven development from within RPG Maker VX Ace without depending on an external Ruby installation. This is primarily a scripter's tool.

    Change Log
    • v1.0 (April 10th, 2014) - Initial release.
    Features
    • Unit testing capabilities for RPG Maker VX Ace.
    • Tests may be written externally or within the Ace Script Editor.
    • Supports both assertion- and expectation-style tests.
    • Assertions and expectations may be mixed freely.
    • Support for simple mock objects.
    • Method stubbing, allowing tests for unpredictable methods.
    • Capturing of standard output as a string.
    Screenshot
    [​IMG]
    How to Use
    There is no succinct way to summarize the usage of this script. However, this script is heavily documented with examples if you wish to simply consult the supplied documentation. In addition, a usage tutorial is available at SES VX Ace.

    Example Test Case
    The following is an example of expectation-style testing done in the SES Test Case framework. The specific test case being shown here was used to test the stubbing feature present in the framework itself. The example shown here is only a small portion of the tests defined for the framework (the entirety of the tests may be found in the source repository under the 'test/' directory).

    Code:
    # ============================================================================# StubTest - Unit tests for stub methods.# ============================================================================class StubTest < SES::Test::Spec  describe 'Stub' do Object.new end    it 'returns value from block' do    subject.stub(:object_id, 0) { 1 < 2 }.must_be_same_as true  end    it 'returns stubbed value when called inside of block' do    subject.stub(:object_id, 0) { subject.object_id }.must_be_same_as 0  end    it 'returns original value when called outside of block' do    subject.stub(:object_id, 0)    subject.object_id.cannot_be_same_as 0  end    it 'generates alias of original inside of block' do    subject.stub(:object_id, 0) do      subject.ses_testcase_stubbed_object_id    end.must_be_same_as subject.object_id  end    it 'removes alias outside of block' do    subject.stub(:object_id, 0)    subject.cannot_respond_to :ses_testcase_stubbed_object_id  endend
    Script
    This script is available from SES VX Ace.

    Installation
    Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

    Place this script above the SES Console if you are using it.

    Credit and Thanks
    • Solistra
    Author's Notes
    This script is made available under the terms of the MIT Expat license. View this page for more information.
     
    #1
    Oriceles, Zeriab and Dr.Yami like this.

Share This Page