mirror of
https://github.com/jlengrand/open-wc.git
synced 2026-03-10 08:31:19 +00:00
1.2 KiB
1.2 KiB
Testing with sinon
Sinon is a library that lets you set up mocks, spies, and stubs in javascript. They ship an es-module version, so it's easy to use it in your tests:
Add Sinon as a dependency:
npm i -D sinon
Use it in your tests:
import { stub } from 'sinon';
import { expect, fixture, html } from '@open-wc/testing';
describe('my component', () => {
it('calls myFunction when a button is clicked', () => {
const el = fixture(html` <my-component></my-component> `);
// stub a function
const myFunctionStub = stub(el, 'myFunction');
// click a button
el.shadowRoot.getElementById('myButton').click();
// check if the function was called
expect(myFunctionStub).to.have.callCount(1);
});
});
class MyComponent extends LitElement {
myFunction(e) {
console.log(e);
}
render() {
return html` <button @click=${e => this.myFunction(e)}>click</button> `;
}
}
customElements.define('my-component', MyComponent);
See the sinon documentation to learn how to use the different features.
If you run into any problems trying to stub methods on component, please check out the FAQ.