5.0 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| a2f1d72d9b908d0bd72bb9f6 | Fazer uma pessoa | 1 | 16020 | make-a-person |
--description--
Preencha o construtor do objeto com os seguintes métodos abaixo:
getFirstName()
getLastName()
getFullName()
setFirstName(first)
setLastName(last)
setFullName(first, last)
Execute os testes para ver a saída esperada para cada método. Estes métodos devem constituir o único meio de interação com o objeto. Cada teste declara uma nova instância de Person como new Person('Bob', 'Ross').
--hints--
Você não deve alterar a assinatura da função.
assert.match(code, /const\s+Person\s*=\s*function\s*\(\s*first\s*,\s*last\s*\)\s*{/);
Você não deve reatribuir o parâmetro first.
assert.notMatch(code, /first\s*=\s*/);
Você não deve reatribuir o parâmetro last.
assert.notMatch(code, /last\s*=\s*/);
Nenhuma propriedade deve ser adicionada. Object.keys(Person).length deve sempre retornar 6.
const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
_person.setLastName('Curry');
_person.setFullName('John', 'Smith');
assert.lengthOf(Object.keys(_person), 6);
Você deve ser capaz de instanciar o objeto Person.
const _person = new Person('Bob', 'Ross');
assert.instanceOf(_person, Person);
O objeto Person deve ter a propriedade firstName.
const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'firstName');
O objeto Person deve ter a propriedade lastName.
const _person = new Person('Bob', 'Ross');
assert.notProperty(_person, 'lastName');
O método .getFirstName() deve retornar a string Bob.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFirstName(), 'Bob');
O método .getLastName() deve retornar a string Ross.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getLastName(), 'Ross');
O método .getFullName() deve retornar a string Bob Ross.
const _person = new Person('Bob', 'Ross');
assert.strictEqual(_person.getFullName(), 'Bob Ross');
O método .getFullName() deve retornar a string Haskell Ross após a chamada de .setFirstName('Haskell').
const _person = new Person('Bob', 'Ross');
_person.setFirstName('Haskell');
assert.strictEqual(_person.getFullName(), 'Haskell Ross');
O método .getFullName() deve retornar a string Bob Curry após a chamada de .setLastName('Curry').
const _person = new Person('Bob', 'Ross');
_person.setLastName('Curry');
assert.strictEqual(_person.getFullName(), 'Bob Curry');
O método .getFullName() deve retornar a string Haskell Curry após a chamada de .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFullName(), 'Haskell Curry');
O método .getFirstName() deve retornar a string Haskell após a chamada de .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getFirstName(), 'Haskell');
O método .getLastName() deve retornar a string Curry após a chamada de .setFullName('Haskell', 'Curry').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Haskell', 'Curry');
assert.strictEqual(_person.getLastName(), 'Curry');
O método .getFullName() deve retornar a string Emily Martinez de la Rosa após a chamada de .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getFullName(), 'Emily Martinez de la Rosa');
O método .getFirstName() deve retornar a string Emily Martinez após a chamada de .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getFirstName(), 'Emily Martinez');
O método .getLastName() deve retornar a string de la Rosa após a chamada de .setFullName('Emily Martinez', 'de la Rosa').
const _person = new Person('Bob', 'Ross');
_person.setFullName('Emily Martinez', 'de la Rosa');
assert.strictEqual(_person.getLastName(), 'de la Rosa');
--seed--
--seed-contents--
const Person = function(first, last) {
this.getFullName = function() {
return "";
};
return "";
};
--solutions--
const Person = function(first, last) {
let firstName = first;
let lastName = last;
this.getFirstName = function(){
return firstName;
};
this.getLastName = function(){
return lastName;
};
this.getFullName = function(){
return firstName + " " + lastName;
};
this.setFirstName = function(str){
firstName = str;
};
this.setLastName = function(str){
lastName = str;
};
this.setFullName = function(first, last){
firstName = first;
lastName = last;
};
};