Created
October 27, 2016 22:43
Gist to show off I'm not a total noob at ES6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 22: class - creation | |
// To do: make all tests pass, leave the assert lines unchanged! | |
describe('class creation', () => { | |
it('is as simple as `class XXX {}`', function() { | |
class TestClass {} | |
const instance = new TestClass(); | |
assert.equal(typeof instance, 'object'); | |
}); | |
it('class is block scoped', () => { | |
{class Inside {}} | |
assert.equal(typeof Inside, 'undefined'); | |
}); | |
it('special method is `constructor`', function() { | |
class User { | |
constructor(id) { | |
this.id = id; | |
} | |
} | |
const user = new User(42); | |
assert.equal(user.id, 42); | |
}); | |
it('defining a method is simple', function() { | |
class User { | |
writesTests() { | |
return false; | |
} | |
} | |
const notATester = new User(); | |
assert.equal(notATester.writesTests(), false); | |
}); | |
it('multiple methods need no commas (opposed to object notation)', function() { | |
class User { | |
wroteATest() { this.everWroteATest = true; } | |
isLazy() { return !this.everWroteATest; } | |
} | |
const tester = new User(); | |
assert.equal(tester.isLazy(), true); | |
tester.wroteATest(); | |
assert.equal(tester.isLazy(), false); | |
}); | |
it('anonymous class', () => { | |
const classType = typeof (() => {}); | |
assert.equal(classType, 'function'); | |
}); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment