¿Hay alguna diferencia entre assertEquals
y assertEqual
en la pitón?unittest.TestCase
?
Y si no lo hay, ¿por qué hay dos funciones? ¿Solo por conveniencia?
fuente
¿Hay alguna diferencia entre assertEquals
y assertEqual
en la pitón?unittest.TestCase
?
Y si no lo hay, ¿por qué hay dos funciones? ¿Solo por conveniencia?
¡Buena pregunta!
En realidad, en Python 2.6, tanto assertEqual
y assertEquals
son los alias de conveniencia a failUnlessEqual
. La fuente los declara así:
# Synonyms for assertion methods
assertEqual = assertEquals = failUnlessEqual
En Python 3 , hasta su punto, failUnlessEqual
está explícitamente en desuso. assertEquals
lleva este comentario :-)
# Sinónimos para métodos de afirmación
# Los plurales no están documentados. Guárdelos de esa manera para desalentar el uso.
# No agregue más. No quitar.
# Pasar por un ciclo de desaprobación en estos molestaría a muchas personas.
Entonces, el resultado parece ser que debes usar lo que quieras para Python 2.x, pero tender a assertEqual
Python 3.
assertEquals
. Sin embargo, gramaticalmente, igual es una forma singular (tercera persona) de un verbo, no un plural. Creo que entendiste correctamente lo que quiso decir el escritor de comentarios, pero la palabra 'plural' está equivocada.Una actualización 3.3: de 26.3.7.1.1. Alias obsoletos :
fuente
No solo para Python 3.x, ya que Python 2.7 también
assertEquals
ha quedado en desuso:Desde 25.3.7.1.1. Alias obsoletos
fuente
Creo que esto era tensión entre la "única forma obvia de hacerlo" frente a "alias para hacer que el código general fluya semánticamente". Personalmente encontré que me gusta leer
encima
pero me gustó
sobre los otros dos (
assertEquals(a, b)
molesta mi sentido de la gramática).La "única forma obvia de hacerlo" ha tenido prioridad en el futuro.
fuente
No encuentro ninguna mención de afirmarEquals en http://docs.python.org/library/unittest.html . Sin embargo, cuando importo TestCase y luego hago una "ayuda (TestCase)", aparece en la lista. Creo que es solo un sinónimo de conveniencia.
fuente
Sé que no responde la pregunta específica, pero si llegaste aquí mientras buscabas:
Solo necesita cambiar la llamada a .assertEqual () (elimine la 's' en equalS)
fuente
Es casi lo mismo, excepto que afirmar Equals se repica. Se recomienda utilizar afirmarEqual como aquí:
Fuente en línea: https://github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Lib/lib2to3/fixes/fix_asserts.py
fuente