Skip to content

Instantly share code, notes, and snippets.

@patrickmedaugh
Last active April 21, 2016 04:14
Show Gist options
  • Save patrickmedaugh/fd03e471b2c4b0d6efb96654affab184 to your computer and use it in GitHub Desktop.
Save patrickmedaugh/fd03e471b2c4b0d6efb96654affab184 to your computer and use it in GitHub Desktop.
Class Creation Tests in Javascript for Loop33
// 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