じ☆ve冰风 发表于 2026-7-30 20:44:49

SES Test Case (Unit testing framework.)

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
Spoilerhttp://sesvxace.files.wordpress.com/2014/04/ses-test-case.png​




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).

Spoiler                Code:       
# ============================================================================# StubTest - Unit tests for stub methods.# ============================================================================class StubTest < SES::Test::Specdescribe 'Stub' do Object.new end    it 'returns value from block' do    subject.stub(:object_id, 0) { 1 < 2 }.must_be_same_as trueend    it 'returns stubbed value when called inside of block' do    subject.stub(:object_id, 0) { subject.object_id }.must_be_same_as 0end    it 'returns original value when called outside of block' do    subject.stub(:object_id, 0)    subject.object_id.cannot_be_same_as 0end    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_idend    it 'removes alias outside of block' do    subject.stub(:object_id, 0)    subject.cannot_respond_to :ses_testcase_stubbed_object_idendend





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.


本贴来自国际rpgmaker官方论坛作者:Solistra处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/ses-test-case-unit-testing-framework.25946/
页: [1]
查看完整版本: SES Test Case (Unit testing framework.)