Jasmine Unit Testing

by Matthew Vasallo

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.2/require.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/jasmine.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/jasmine.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.0/jasmine-html.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.5.2/boot.js"></script>

JavaScript

describe('Unit Test Workshop Test Suite', () => {
  describe('Dog', () => {
    it('Make sound when barks', (done) => {
       setTimeout(() => {
       expect(true).toBe(true);
        done();
        }, 1000);
    });
    it('true is equal to true', (done) => {
      expect(true).toBeTruthy();
      console.log('2nd test done');
      return Promise.resolve().then(()=>{
        expect(true).toBe(true);
        console.log('in promise');
        done();
        });
    });
    it('1 is equal to 1', () => {
      expect(1).toEqual(1);
      console.log('next test');
    });
    it('2 x 3 is equal to 6', () => {
      expect(2 * 3).toEqual(6);
    });
  });
  describe('Async examples', () => {
    it('waits for done', (done) => {
       setTimeout(() => {
       expect(true).toBe(true);
        done();
        }, 1000);
    });
  });
});

const can1 = {
  flavor: 'grapefruit',
  ounces: 12,
};
const can2 = {
  flavor: 'grapefruit',
  ounces: 12,	
};

fdescribe('the La Croix cans on my desk', () => {
  it('have all the same properties', () => {
    expect(can1).toEqual(can2);
  });
  it('are not the exact same can', () => {
    expect(can1).not.toBe(can2);
  });
});