Metaprogramación: Crear un caso de prueba
Se te dan dos valores a y b del mismo tipo: números, cadenas o arrays. El resultado será:
- La suma de
aybsi los parámetros son números.- a = 1 | b = 1 ➞ Resultado = 2
- La unión en una sola cadena de
aybsi los parámetros son cadenas.- a = "1" | b = "1" ➞ Resultado = "11"
- La concatenación de los valores de
ayben un solo array si los parámetros son arrays.- a = ["String"] | b = ["String"] ➞ Resultado = ["String", "String"]
En cualquier caso, no tienes que devolver simplemente el resultado. Este desafío será un poco diferente de lo habitual porque tu función devolverá el mismo caso de prueba que verifica que tu función es correcta.
Cuando intentas resolver un desafío, tu función se pasa a una función Test que acepta tres parámetros: tu función con sus parámetros relacionados, el resultado esperado y un comentario opcional (que no se usa en este ejercicio).
Hay dos tipos diferentes de función Test:
Test.assertEquals(yourFunctionName(firstParameter, ..., lastParameter), result)Se usa cuando el tipo del valor del resultado esperado es primitivo (números, cadenas, booleanos o valores especiales como undefined, null y NaN).
Test.assertSimilar(yourFunctionName(firstParameter, ..., lastParameter), result)Se usa cuando el tipo del valor del resultado esperado es un objeto (arrays u objetos literales).
Debes devolver una cadena que contenga la función Test que verifica la corrección del resultado obtenido. Consulta los ejemplos a continuación para una mejor explicación.
Ejemplos
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.Notas
- Cuando los parámetros, los resultados o los valores dentro de los arrays son cadenas, deben llevar las comillas dobles
"a su alrededor en la cadena devuelta. - ¡Consulta la pestaña Tests si necesitas ayuda!