Getting started
Overview
XBell is a modern web testing framework that combines unit testing with end-to-end testing.
You can freely switch between Node.js and Browser environments to test your code in one case.
Installation
- npm
- yarn
- pnpm
$ npm install xbell
# install browser
$ npx xbell install browser
$ npx xbell
$ yarn add xbell
# install browser
$ npx xbell install browser
$ yarn test
$ pnpm add xbell
# install browsers
$ pnpm exec xbell install browser
$ pnpm exec xbell
Writing Tests
Way 1: Node.js Testing
Test the code in nodejs
test-nodejs.test.js
import { test, expect } from 'xbell';
// import to nodejs
import { add } from './add';
test('test the code in nodejs', () => {
expect(add(1, 1)).toBe(2);
});
Way 2: Browser Testing
Test the code in browser
test-browser.test.js
import { test } from 'xbell';
test.browser('test the code in browser', async ({ expect }) => {
// 1. import to browser
const { add } = await import('./add');
// 2. expect in browser
expect(add(1, 1)).toBe(2);
});
Way 3: Nodejs & Browser
You can even run some code in NodeJS and some in the browser in just one case.
Alternatively, you can run the code in browser, make assertions in nodejs.
import { test } from 'xbell';
test('test the code in browser', async ({ page }) => {
// browser page
await page.evalute(async () => {
// 1. import to browser
const { add } = await import('./add');
// 2. render to browser
document.body.innerHTML = `<div>result is ${result}</div>`;
});
// 3. assetion in nodejs
await expect(page).toMatchSnapShot({
name: 'result-screenshot'
});
});