Arrange Act Assert
This is an optional lesson that looks into what can we do about more complex and convoluted tests to improve readability.
We'll cover the following...
Explanation of the last unit test
Let’s take a look at the unit test from the previous lesson:
it('should create canvas, append it in the element, get a 2d context and draw the square', () => {
const contextMock = { rect: jasmine.createSpy('rect') };
const canvasMock = { getContext: jasmine.createSpy('canvasMock') };
canvasMock.getContext.and.returnValue(contextMock);
const documentSpy = spyOn(document, 'createElement').and.returnValue(canvasMock);
const element = { appendChild: jasmine.createSpy('appendChild') };
drawSquare(element, 10);
expect(documentSpy).toHaveBeenCalledTimes(1);
expect(element.appendChild).toHaveBeenCalledOnceWith(canvasMock);
expect(canvasMock.getContext).toHa
...