█████ ███████ ████████ ███████ ███████ ████████
██ ██ ██ ██ ██ ██ ██
███████ ███████ █████ ██ █████ ███████ ██
██ ██ ██ ██ ██ ██ ██
██ ██ ███████ ██ ███████ ███████ ██
AssemblyScript - v0.4.1
A lightweight testing framework for AssemblyScript.
🔹 Minimal and fast – Run your tests without unnecessary overhead.
🔹 Familiar API – Inspired by modern JavaScript testing frameworks.
🔹 Powerful mocking – Easily override functions and track calls.
🔹 Seamless CI/CD integration – Works effortlessly in automation pipelines.
🔹 Universal environment – Run your tests on any platform, runtime, or bindings.
npm install as-test
Initialize your test setup with:
as-test init
This creates a test directory at assembly/__tests__/
with a sample test file.
Create a new test file in assembly/__tests__/
, for example, math.spec.ts
:
import { describe, test, expect, run } from "as-test";
describe("Math operations", () => {
test("Addition", () => {
expect(1 + 2).toBe(3);
});
test("Subtraction", () => {
expect(5 - 2).toBe(3);
});
test("Multiplication", () => {
expect(3 * 3).toBe(9);
});
});
run();
Use mockFn
to override functions during testing:
import { mockFn } from "as-test";
// Mock console.log
mockFn<void>("console.log", (data: string): void => {
console.log("[MOCKED]: " + data);
});
run();
Or override imported functions with mockImport
.
Use beforeAll
and afterAll
to run code before and after a test is run.
import { beforeAll, afterAll } from "as-test";
beforeAll(() => {
log("Setting up test environment...");
});
afterAll(() => {
log("Tearing down test environment...");
});
run();
Using console.log
will mess up the terminal output. Instead, use the inbuilt log
function:
import { log } from "as-test";
log("This is a pretty log function");
run();
Or override all existing console.log
calls with log
:
import { mockFn, log } from "as-test";
mockFn<void>("console.log", (data: string): void => {
log(data);
});
run();
To integrate as-test
into your CI/CD workflow, see the example configuration.
assembly/__tests__/example.spec.ts
This project is distributed under an open source license. You can view the full license using the following link: License
Please send all issues to GitHub Issues and to converse, please send me an email at [email protected]
- Email: Send me inquiries, questions, or requests at [email protected]
- GitHub: Visit the official GitHub repository Here
- Website: Visit my official website at jairus.dev
- Discord: Contact me at My Discord or on the AssemblyScript Discord Server