ツクールの自作プラグインにテストコードを書いてみた

いいですね!
俺はテストを書くときは jest を使ってます。
chai と mocha と sinon が1つになったようなテストフレームワークなので、おすすめですよ

npm i jest
npm i -D @types/jest
( 今回、@types/jest はVSCodeなどで入力補完を使えるようにするために使いますが、なくても動きます。TypeScriptでテストする場合は必須 )
 
最後に編集:
ちなみに jest で書くとこんな感じです。太字が差分。

package.json
{
"scripts": {
"test": "jest"
},
"dependencies": {
"@types/jest": "^26.0.20",
"jest": "^26.6.3"

}
}

test/GMN_RandomTargetToIndexZero.test.js
const GMN_RandomTargetToIndexZero = require("../ProjectMZ/js/plugins/GMN_RandomTargetToIndexZero");

describe("GMN_RandomTargetToIndexZero のユニットテスト", () => {
const ENEMY_UNIT = "ENEMY_UNIT";
const MY_PARTY_UNIT = "MY_UNIT";
const isPartyUseOneRandomTarget =
GMN_RandomTargetToIndexZero.isPartyUseOneRandomTarget;
it("発動者が味方で対象が1体ならtrueを返す", () => {
expect(
isPartyUseOneRandomTarget(MY_PARTY_UNIT, MY_PARTY_UNIT, 1)
).toBeTruthy();

});
it("発動者が味方で対象が2体ならfalseを返す", () => {
expect(
isPartyUseOneRandomTarget(MY_PARTY_UNIT, MY_PARTY_UNIT, 2)
).toBeFalsy();

});
it("発動者が敵で対象が1体ならfalseを返す", () => {
expect(isPartyUseOneRandomTarget(ENEMY_UNIT, MY_PARTY_UNIT, 1)).toBeFalsy();
});
});

実行結果ログ
PASS ./test/GMN_RandomTargetToIndexZero.test.js
GMN_RandomTargetToIndexZero のユニットテスト
√ 発動者が味方で対象が1体ならtrueを返す (1 ms)
√ 発動者が味方で対象が2体ならfalseを返す
√ 発動者が敵で対象が1体ならfalseを返す

Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 1.475 s
Ran all test suites.
 
最後に編集:
トップ