No results for

Powered byAlgolia

expect is a wrapper of check to provide BDD style of assertions in k6. It implements the Chai Expect API:

script.js
import http from "k6/http";
import { describe, expect } from "https://jslib.k6.io/k6chaijs/4.3.4.2/index.js";
export default function () {
describe('Basic test', () => {
expect({ a: 1 }).to.not.have.property("b");
expect(2).to.equal(2);
expect({ a: 1 }).to.deep.equal({ a: 1 });
expect({ a: { b: ["x", "y"] } }).to.have.nested.property("a.b[1]");
expect({ a: 1 }).to.have.own.property("a");
expect([1, 2])
.to.have.ordered.members([1, 2])
.but.not.have.ordered.members([2, 1]);
expect({ a: 1, b: 2 }).to.not.have.any.keys("c", "d");
expect({ a: 1, b: 2 }).to.have.all.keys("a", "b");
expect("foo").to.be.a("string");
expect([1, 2, 3]).to.be.an("array").that.includes(2);
expect("foobar").to.include("foo");
expect(1).to.equal(1);
expect(true).to.be.true;
expect(false).to.be.false;
expect(null).to.be.null;
expect(undefined).to.be.undefined;
expect(NaN).to.be.NaN;
expect(1).to.equal(1);
expect([]).to.be.empty;
expect({}).not.to.be.arguments;
expect(1).to.equal(1);
expect({ a: 1 }).to.eql({ a: 1 }).but.not.equal({ a: 1 });
expect("foo").to.have.lengthOf(3);
expect(2).to.equal(2);
expect(1).to.equal(1);
expect(2).to.be.at.most(3);
expect(2).to.equal(2);
expect({ a: 1 }).to.not.be.an.instanceof(Array);
expect({ a: 1 }).to.have.property("a");
expect([1, 2, 3]).to.have.lengthOf(3);
expect("foobar").to.match(/^foo/);
expect("foobar").to.have.string("bar");
expect({ a: 1, b: 2 }).to.have.all.keys("a", "b");
const badFn = function () {
throw new TypeError("Illegal salmon!");
};
expect(badFn).to.throw();
expect(1).to.satisfy(function (num) {
return num > 0;
});
expect(1.5).to.equal(1.5);
expect([1, 2, 3]).to.have.members([2, 1, 3]);
expect("Today is sunny").to.contain.oneOf(["sunny", "cloudy"]);
expect({ a: 1 }).to.be.extensible;
expect(1).to.be.finite;
});
}

When you run this test with k6 run script.js, the output at the end of the test shows:

default ✓ [======================================] 1 VUs 00m00.0s/10m0s 1/1 iters, 1 per VU
█ Basic test
✓ expected ${this} to not have property 'b'
✓ expected ${this} to equal 2
✓ expected ${this} to deeply equal { a: 1 }
✓ expected ${this} to have nested property 'a.b[1]'
✓ expected ${this} to have own property 'a'
✓ expected ${this} to be an array
✓ expected ${this} to have the same ordered members as [ 1, 2 ]
✓ expected ${this} to not have the same ordered members as [ 2, 1 ]
✓ expected ${this} to not have keys 'c', or 'd'
✓ expected ${this} to have keys 'a', and 'b'
✓ expected ${this} to be a string
✓ expected ${this} to include 2
✓ expected ${this} to include 'foo'
✓ expected ${this} to equal 1
✓ expected ${this} to be true
✓ expected ${this} to be false
✓ expected ${this} to be null
✓ expected ${this} to be undefined
✓ expected ${this} to be NaN
✓ expected ${this} to be empty
✓ expected ${this} to not be arguments
✓ expected ${this} to not equal { a: 1 }
✓ expected ${this} to have property 'length'
✓ expected ${this} to have a length of 3 got ${actual}
✓ expected ${this} to be at most 3
✓ expected ${this} to not be an instance of Array
✓ expected ${this} to have property 'a'
✓ expected ${this} to match /^foo/
✓ expected ${this} to contain 'bar'
✓ expected ${this} to be a function
✓ expected ${this} to throw an error
✓ expected ${this} to satisfy [Function]
✓ expected ${this} to equal 1.5
✓ expected ${this} to have the same members as [ 2, 1, 3 ]
✓ expected ${this} to contain one of [ 'sunny', 'cloudy' ]
✓ expected ${this} to be extensible
✓ expected ${this} to be a finite number