Sto lavorando su un progetto personale usando Python. Ho utilizzato il controllo di versione al meglio delle mie capacità e se volessi verificarlo ed eseguire l'app link
Se preferisci Floobits, guarda il mio codice attuale in un editor qui: link
Ho imparato il controllo della versione con questo progetto e ho cercato di utilizzare TDD con le mie migliori capacità. Al momento dell'apertura della classe Test_Schedule, è stato difficile scrivere metodi di test.
Una piccola parte di ciò che sto cercando di fare: Sto costruendo un API che gestisce un sistema di pianificazione. Questo comunicherà con il web e con i dispositivi mobili. Gli utenti eseguono l'accesso e possono controllare il loro programma, cambiare le date per visualizzare altri orari programmati e anche selezionare la quantità di informazioni visualizzate (ad esempio mostrare solo server o personale di cucina, vista giornaliera, vista mese, vista calendario).
Quindi ecco la domanda: Come si costruisce un oggetto di pianificazione? Come dovrei visualizzare questo? Quali tipi di domande dovrei chiedermi per aiutarmi ad andare avanti? Sembra che ho bisogno di informazioni utente da entrambi gli utenti e spostare per popolare il programma.
In questo momento sono bloccato. E questo perché ho due oggetti: User e Shift. Ora penso che dovrei creare un oggetto di pianificazione.
un utente contiene _id (user_id), nome, email ....
uno Shift contiene _id, user_id, start_time, stop_time
Per visualizzare questa roba sul front-end, ho bisogno di compilare un programma. Un po 'come questo:
# mon tues weds thurs fri sat
# user1 4:00 ____ 6:00 4:00 5:00 6:00
# user2 4:00 5:00 6:00 ____ 5:00 6:00
Questo è solo un esempio, ma dall'aspetto di questo, potrei aver bisogno di Schedule per restituire qualcosa di simile a questo (Maiusc, Nessuno, Maiusc, Maiusc, Nessuno, Maiusc)
Questo è alcuni casi di test nel mio oggetto shift
def test_create_shift(self):
def test_shift_throws_error_if_time_is_not_int(self):
def test_save_shift_to_database(self):
def test_get_shifts_by_id(self):
def test_get_shifts_within_date_range_by_id(self):
def test_get_shifts_on_specific_date_by_id(self):
def test_get_shifts_before_end_time_by_id(self):
def test_get_shifts_after_start_time_by_id(self):
def test_get_shifts_exactly_on_start_date_by_id(self):
def test_get_shifts_exactly_on_end_date_by_id(self):
def test_get_current_weeks_shifts_by_id(self):
Ecco il mio processo di pensiero finora:
schedule = Schedule(user_id) <---- no range added
test_no_range_added_returns_this_weeks_shifts_for_user()
assertEquals(len(schedule.shifts), 7)
test_user_with_no_shifts_returns_none_for_each_day_in_range()
for i in range(schedule.shifts):
assertEqual(schedule.shifts[i], None)
Questo è il modo più attuale per pensare. Un programma è solo una riga, quindi fondamentalmente un utente. Il programma ha turni e un utente. Più pianificazioni vengono caricate per popolare tutti i dipendenti. Forse Schedule non è il nome migliore, ma non ne sono ancora sicuro.