https://github.com/jairussw/as-test
Testing framework for AssemblyScript. Compatible with WASI or Bindings
https://github.com/jairussw/as-test
as-pect aspect assemblyscript test testing
Last synced: about 2 months ago
JSON representation
Testing framework for AssemblyScript. Compatible with WASI or Bindings
- Host: GitHub
- URL: https://github.com/jairussw/as-test
- Owner: JairusSW
- License: mit
- Created: 2024-05-21T03:13:18.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-12T21:26:23.000Z (3 months ago)
- Last Synced: 2025-04-16T05:30:52.136Z (2 months ago)
- Topics: as-pect, aspect, assemblyscript, test, testing
- Language: TypeScript
- Homepage:
- Size: 484 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
█████ ███████ ████████ ███████ ███████ ████████
██ ██ ██ ██ ██ ██ ██
███████ ███████ █████ ██ █████ ███████ ██
██ ██ ██ ██ ██ ██ ██
██ ██ ███████ ██ ███████ ███████ ██
AssemblyScript - v0.4.1A 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.
## 💾 Installation
```bash
npm install as-test
```Initialize your test setup with:
```bash
as-test init
```This creates a test directory at `assembly/__tests__/` with a sample test file.
## 📝 Writing Tests
Create a new test file in `assembly/__tests__/`, for example, `math.spec.ts`:
```js
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();
```## 🔍 Examples
### 🏗️ Mocking Functions
Use `mockFn` to override functions during testing:
```js
import { mockFn } from "as-test";// Mock console.log
mockFn("console.log", (data: string): void => {
console.log("[MOCKED]: " + data);
});run();
```Or override imported functions with `mockImport`.
### ⚒️ Setup and Teardown
Use `beforeAll` and `afterAll` to run code before and after a test is run.
```js
import { beforeAll, afterAll } from "as-test";beforeAll(() => {
log("Setting up test environment...");
});afterAll(() => {
log("Tearing down test environment...");
});run();
```### 📃 Pretty Logging
Using `console.log` will mess up the terminal output. Instead, use the inbuilt `log` function:
```js
import { log } from "as-test";log("This is a pretty log function");
run();
```Or override all existing `console.log` calls with `log`:
```js
import { mockFn, log } from "as-test";mockFn("console.log", (data: string): void => {
log(data);
});run();
```### 🔄 Running Tests in CI
To integrate `as-test` into your CI/CD workflow, see the [example configuration](https://github.com/JairusSW/as-test/blob/main/.github/workflows/as-test.yml).
`assembly/__tests__/example.spec.ts`
## 📃 License
This project is distributed under an open source license. You can view the full license using the following link: [License](./LICENSE)
## 📫 Contact
Please send all issues to [GitHub Issues](https://github.com/JairusSW/as-test/issues) and to converse, please send me an email at [[email protected]](mailto:[email protected])
- **Email:** Send me inquiries, questions, or requests at [[email protected]](mailto:[email protected])
- **GitHub:** Visit the official GitHub repository [Here](https://github.com/JairusSW/as-test)
- **Website:** Visit my official website at [jairus.dev](https://jairus.dev/)
- **Discord:** Contact me at [My Discord](https://discord.com/users/600700584038760448) or on the [AssemblyScript Discord Server](https://discord.gg/assemblyscript/)