test মডিউল

একটি minimal টেস্ট ফ্রেমওয়ার্ক। test() দিয়ে রেজিস্টার, equal / is_true / ইত্যাদি দিয়ে assert, run() দিয়ে সব execute। কোনো test ব্যর্থ হলে প্রসেস কোড 1-এ exit — CI-এর জন্য এটাই যথেষ্ট।

একটি test ফাইল = একটি Bnlang স্ক্রিপ্ট। test import করুন, কেস রেজিস্টার করুন, t.run() কল করুন।

import "test" as t;

t.test("addition", function () {
    t.equal(2 + 2, 4);
});

t.test("upper case", function () {
    t.equal("foo".to_upper(), "FOO");
});

t.run();

API

ফাংশনবর্ণনা
t.test(name, fn)একটি test রেজিস্টার। fn কোনো arg নেয় না; throw করলে fail।
t.run()সব test execute; summary; কোনো fail হলে exit 1।

অ্যাসারশন

ফাংশনবর্ণনা
t.equal(actual, expected)Value তুলনা।
t.not_equal(actual, expected)উল্টো।
t.is_true(v) / t.is_false(v)Boolean চেক।
t.is_null(v) / t.not_null(v)
t.contains(haystack, needle)Substring (string) বা membership (list)।
t.throws(fn)fn() throw assert।
t.throws_with(fn, substring)Throw + মেসেজে substring।

চালানো

bnl tests/parser_spec.bnl

# একটি পুরো ফোল্ডার (শেল দিয়ে):
for f in tests/*.bnl; do bnl "$f" || exit 1; done

কোনো test-discovery বাইনারি নেই — শুধু bnl দিয়ে ফাইল চালান। CI প্যাটার্নের জন্য Using Bnlang's test framework দেখুন।