import assert from 'node:assert';
assert.deepEqual(5, 3, 'not equal')
// This fails because 1 !== '1'.
assert.deepStrictEqual({ a: 1 }, { a: '1' });toBeNull matches only null
toBeUndefined matches only undefined
toBeDefinedtoBeTruthytoBeFalsytest('object assignment', () => {
const data = {one: 1};
data['two'] = 2;
expect(data).toEqual({one: 1, two: 2});
});
test('two plus two is four', () => {
expect(2 + 2).toBe(4);
});
test('null', () => {
const n = null;
expect(n).toBeNull();
expect(n).toBeDefined();
expect(n).not.toBeUndefined();
expect(n).not.toBeTruthy();
expect(n).toBeFalsy();
});
test('adding floating point numbers', () => {
const value = 0.1 + 0.2;
//expect(value).toBe(0.3); This won't work because of rounding error
expect(value).toBeCloseTo(0.3); // This works.
});| assertion | matcher/expectation |
|---|---|
| комплексный | простой |
| не кастомизируемый | кастомизируемый |
Библиотека для эмулирования поведения пользователя
W3C Recommendation
Win/Mac/Linux
Webdriver
Browser Driver
npm install selenium-webdriverconst {By, Builder, Browser} = require('selenium-webdriver');
const assert = require("assert");
let driver;
test.beforeEach(() => {
driver = await new Builder().forBrowser(Browser.CHROME).build();
})
test('first test', async () => {
await driver.get('https://www.selenium.dev/selenium/web/web-form.html');
let title = await driver.getTitle();
assert.equal("Web form", title);
await driver.manage().setTimeouts({implicit: 500});
let textBox = await driver.findElement(By.name('my-text'));
let submitButton = await driver.findElement(By.css('button'));
await textBox.sendKeys('Selenium');
await submitButton.click();
let message = await driver.findElement(By.id('message'));
let value = await message.getText();
assert.equal("Received!", value);
})
test.afterEach(async () => {
await driver.quit();
})