Attualmente sto scrivendo alcuni casi di test in python. Spesso finisco per chiamare le stesse due o tre righe di codice all'inizio di un caso di test per ottenere il programma che sto testando. Ad esempio:
test_something_foo():
call_method_a(x)
call_method_b(y)
# test some stuff
test_something_bar():
call_method_a(x)
call_method_b(y)
# test some other stuff
Questo significa che sto ripetendo più e più volte queste due linee. Così ho pensato di estrarre in questo modo:
test_something_foo():
call_method_a_and_b(x,y)
# test some stuff
test_something_bar():
call_method_a_and_b(x,y)
# test some other stuff
call_method_a_and_b(x, y):
call_method_a()
call_method_b()
Ma non sono sicuro se sia una buona idea. Da un lato risolve il principio "non ripeterti", ma il mio metodo "call_method_a_and_b ()" non viola il principio di "un metodo dovrebbe fare una cosa e una sola cosa". Come concilia questi due principi di progettazione apparentemente in conflitto ??