Zarządzam dość dużą aplikacją (50k + linie kodu) samemu i zarządzam pewnymi krytycznymi działaniami biznesowymi. Aby opisać program w prosty sposób, powiedziałbym, że jest to wymyślny interfejs użytkownika z możliwością wyświetlania i zmieniania danych z bazy danych, a zarządza około 1000 jednostkami do wynajęcia, około 3 tys. Lokatorów i wszystkimi finansami.Aplikacja do testowania bazy danych z logiką biznesową przeprowadzoną w interfejsie użytkownika
Kiedy dokonuję zmian, ponieważ jest tak duża z bazy kodu, czasami coś łamam gdzieś indziej. Zazwyczaj testuję to, przechodząc przez rzeczy, które zmieniłem na poziomie funkcjonalnym (tj. Uruchamiam program i pracuję przez interfejs użytkownika), ale nie mogę testować dla każdej sytuacji. Właśnie dlatego chcę zacząć od testów jednostkowych.
Jednak nie jest to prawdziwy, trójwarstwowy program z warstwą bazy danych, warstwą biznesową i warstwą interfejsu użytkownika. Wiele logiki biznesowej jest wykonywanych w klasach interfejsu użytkownika, a wiele rzeczy odbywa się na wydarzeniach. Aby komplikować wszystko, wszystko opiera się na bazie danych i nie widziałem (jak dotąd) dobrych sugestii na temat jednostkowych interakcji z bazą danych.
Jaki byłby dobry sposób na rozpoczęcie testów jednostkowych dla tej aplikacji. Pamiętać. Nigdy wcześniej nie testowałem jednostki ani TDD. Czy powinienem przepisać go, aby usunąć logikę biznesową z klas UI (dużo pracy)? Czy jest jakiś lepszy sposób?
@Malfist: 50K + linie kodu nie są duże: w najlepszym razie średnie. Napisałem w większości samodzielnie aplikację 200KLOC + (nie biorąc pod uwagę linii testowych) i uważam ją za średnią, niezbyt dużą :) – SyntaxT3rr0r