Metaprogramação: Criando um caso de teste
Você recebe dois valores a e b do mesmo tipo: números, strings ou arrays. O resultado será:
- A soma de
aebse os parâmetros forem números.- a = 1 | b = 1 ➞ Resultado = 2
- A união de
aebem uma única string se os parâmetros forem strings.- a = "1" | b = "1" ➞ Resultado = "11"
- A concatenação dos valores de
aebem um único array se os parâmetros forem arrays.- a = ["String"] | b = ["String"] ➞ Resultado = ["String", "String"]
Em qualquer caso, você não precisa simplesmente retornar o resultado. Este desafio será um pouco diferente do habitual porque sua função vai retornar o mesmo caso de teste que verifica se sua função está correta!
Quando você tenta resolver um desafio, sua função é passada para uma função Test, que aceita três parâmetros: sua função com os parâmetros relacionados, o resultado esperado e um comentário opcional (não usado neste exercício).
Há dois tipos diferentes de função Test:
Test.assertEquals(yourFunctionName(firstParameter, ..., lastParameter), result)Isso é usado quando o tipo do valor do resultado esperado é primitivo (números, strings, booleanos ou valores especiais como undefined, null e NaN).
Test.assertSimilar(yourFunctionName(firstParameter, ..., lastParameter), result)Isso é usado quando o tipo do valor do resultado esperado é um objeto (arrays ou objetos literais).
Você deve retornar uma string contendo a função Test que verifica a correção do resultado obtido. Veja os exemplos abaixo para uma explicação mais detalhada.
Exemplos
createTest(1, 1) ➞ 'Test.assertEquals(createTest(1, 1), 2)'
// Parameters are numbers, so result will be their sum: Test function verifies equality.
createTest("a", "b") ➞ 'Test.assertEquals(createTest("a", "b"), "ab")'
// Parameters are strings, so result will be their join: Test function verifies equality.
createTest(["String"], ["String"]) ➞ 'Test.assertSimilar(createTest(["String"], ["String"]), ["String", "String"])'
// Parameters are arrays, so result will be the concatenation of the values inside the arrays: Test function verifies similarity.Observações
- Quando os parâmetros, os resultados ou os valores dentro dos arrays forem strings, eles precisam estar entre aspas duplas
"na string retornada. - Consulte a aba Tests se precisar de ajuda!