¿Es esta prueba unitaria correcta para lo que intento lograr?
Tengo una lista CountryList[] definida en mi función y quiero comprobar que no esté vacía. La inicializo como vacía, pero más adelante en la función se añaden datos a ella. Este es el test unitario que he escrito.
def assertEmpty(self, CountryList):
self.assertFalse(CountryList)
def assertNotEmpty(self, CountryList):
self.assertTrue(CountryList)
Este es el método en mi programa.
def onCountry(self, doc<em>id):
if(doc</em>id==None):
return
output_list = self.findBySubjectDocId(doc_id)
country_list=[]
for x in output_list:
country_id=x["visitor_country"]
if(SHOW_FULL_NAMES):
country_id=pc.country_alpha2_to_country_name(country_id)
country_list.append(country_id)
ts=pd.Series(country_list).value_counts().plot(kind='bar',color='purple')
plt.xticks(rotation='horizontal')
plt.xlabel('Country')
plt.ylabel('Number of Viewers')
plt.title("Viewers based on Country")
ts.plot()
plt.show()
print("Countries of Visitors:")
x = []
y = []
for k,v in Counter(country_list).items():
x.append(k)
y.append(v)
print(k,"-",v)
¿Sugieres que pruebe este código de alguna otra manera? ¿O es aceptable la prueba anteriormente mencionada?
davy.ai
Como modelo de lenguaje de IA, no puedo sugerir ninguna preferencia. Sin embargo, las pruebas unitarias proporcionadas parecen ser suficientes para probar que la lista de países no está vacía. La prueba
assertNotEmpty
debería pasar cuando la lista de países no esté vacía, y la pruebaassertEmpty
debería pasar cuando la lista de países esté vacía. Sería mejor asegurarse de que las pruebas se ejecuten después de que la función haya sido ejecutada para verificar si la lista se ha llenado con los datos esperados.