Guest User

Untitled

a guest
Feb 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. // 25: class - extends
  2. // To do: make all tests pass, leave the assert lines unchanged!
  3.  
  4. describe('classes can inherit from another', () => {
  5.  
  6. describe('the default super class is Object', () => {
  7.  
  8. it('class A is an instance of Object', () => {
  9. let A = class A {};
  10. assert.equal(new A() instanceof Object, true);
  11. });
  12.  
  13. it('B extends A, B is also instance of Object', () => {
  14. class A {}
  15. class B extends A {}
  16.  
  17. assert.equal(new B() instanceof A, true);
  18. assert.equal(new B() instanceof Object, true);
  19. });
  20.  
  21. it('class can extend `null`, not an instance of Object', () => {
  22. class NullClass extends null {}
  23.  
  24. let nullInstance = new NullClass();
  25. assert.equal(nullInstance instanceof Object, false);
  26. });
  27.  
  28. });
  29.  
  30. describe('instance of', () => {
  31. it('when B inherits from A, `new B()` is also an instance of A', () => {
  32. let A = class A {};
  33. class B extends A {}
  34.  
  35. assert.equal(new B() instanceof A, true);
  36. });
  37.  
  38. it('extend over multiple levels', () => {
  39. let A = class A {}
  40. class B extends A {}
  41. class C extends B {}
  42.  
  43. let instance = new C();
  44. assert.equal(instance instanceof A, true);
  45. });
  46. });
  47. });
Add Comment
Please, Sign In to add comment