Wskazówki: wcześniejsze testowanie obsługi przy użyciu funkcji generowania na podstawie sposobu użycia
W tym temacie przedstawiono sposób użycia Generowanie na podstawie sposobu użycia funkcji, która obsługuje rozwoju pierwszego badania.
Pierwszy test rozwoju to podejście do projektowania oprogramowania, w którym najpierw napisać testy na podstawie specyfikacji produktu, a następnie napisać kod źródłowy, który jest wymagany do wykonania testów powiodła się.Visual Studioobsługuje test pierwszego rozwoju poprzez generowanie nowych typów oraz członków kod źródłowy, najpierw adres ich przypadków badania przed są zdefiniowane.
Visual Studiogeneruje nowe typy i członków z minimalne przerwy do przepływu pracy.Można utworzyć procedur wejścia dla typów, metody, właściwości, pól lub konstruktory bez opuszczania bieżącej lokalizacji w kodzie.Po otwarciu okno dialogowe, aby określić opcje generowania typu fokus natychmiast zwraca do bieżącego otwartego pliku, po zamknięciu okna dialogowego.
Funkcja generowania z użycia może być używana z ramami badania, które integrują się z Visual Studio.W tym temacie obrazuje ramowej badania jednostki firmy Microsoft.
[!UWAGA]
Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Tworzenie projektu biblioteki klas systemu Windows i projekt badania
W Visual C# lub Visual Basic, Utwórz nowy projekt biblioteki klas systemu Windows.Nadaj mu nazwę GFUDemo_VB lub GFUDemo_CS, w zależności od języka, którego używasz.
W Solution Explorer, kliknij prawym przyciskiem myszy ikonę roztwór u góry, wskaż polecenie Dodaj, a następnie kliknij przycisk Nowy projekt.W Nowy projekt dialogowe, w Typów projektów okienku po lewej stronie, kliknij Test.
W szablonów okienka, kliknij Projektu badania jednostki i zaakceptuj domyślną nazwę UnitTestProject1.Na poniższej ilustracji przedstawiono okno dialogowe pojawiają się w Visual C#.W Visual Basic, okno dialogowe wygląda podobnie.
Okno dialogowe Nowy projekt
Kliknij OK zamknąć Nowy projekt okno dialogowe.Teraz jesteś gotowy do rozpoczęcia pisania testów
Do generowania nowej klasy z test jednostki
Projekt badania zawiera plik o nazwie UnitTest1.Kliknij dwukrotnie ten plik w Solution Explorer , aby go otworzyć w edytorze kodu.Test klasy i metody badania zostały wygenerowane.
Znajdź deklarację klasy UnitTest1 i zmień, aby AutomobileTest.W języku C# Jeśli UnitTest1() Konstruktor, Zmień, aby AutomobileTest().
[!UWAGA]
Technologia IntelliSense teraz przewiduje dwie alternatywy uzupełnianie instrukcji IntelliSense: tryb zakończenia i Tryb sugestia.W sytuacjach, w których klasy i elementy są stosowane przed są zdefiniowane, należy użyć trybu sugestię.Po otwarciu okna IntelliSense, można nacisnąć klawisze CTRL + ALT + SPACJA powoduje przełączenie między tryb zakończenia i tryb sugestię.Zobacz Korzystanie z IntelliSense Aby uzyskać więcej informacji.Tryb sugestia pomoże podczas wpisywania Automobile w następnym kroku.
Zlokalizuj TestMethod1() metody i zmień, aby DefaultAutomobileIsInitializedCorrectly().Ta metoda, Utwórz nowe wystąpienie klasy o nazwie Automobile, jak pokazano w poniższej ilustracji.Pojawi się linią falistą, która wskazuje błąd kompilacji i tagu inteligentnego, który pojawia się pod nazwą typu.Dokładna lokalizacja tych tagów inteligentnych zmienia się w zależności od tego, czy używasz Visual Basic lub Visual C#.
Visual Basic
Visual C#
Wskaźnik myszy nad tag inteligentny, aby wyświetlić komunikat o błędzie, informujący o tym, że żaden typ o nazwie Automobile jeszcze zdefiniowany.Kliknij przycisk tagu inteligentnego lub naciśnij klawisze CTRL +.(CTRL + okresu), aby otworzyć menu skrótów wygenerować z użycia, jak pokazano w poniższej ilustracji.
Visual Basic
Visual C#
Teraz masz dwie możliwości.Można kliknąć przycisk Generuj ' samochód klasy ' do tworzenia nowego pliku w projekcie badania i go wypełnić puste klasę o nazwie Automobile.Jest to szybki sposób, aby utworzyć nową klasę w nowego pliku, który ma domyślną modyfikatory dostępu w bieżącym projekcie.Można także kliknąć Generowanie nowego typu otworzyć Wygenerować nowy typ okno dialogowe.Zapewnia to opcje, które obejmują wprowadzenie klasy w istniejącym pliku i dodawanie pliku do innego projektu.
Kliknij Generowanie nowego typu otworzyć Wygenerować nowy typ okno dialogowe, które przedstawiono na poniższej ilustracji.W Projekt listy, kliknij przycisk GFUDemo_VB lub GFUDemo_CS do Visual Studio dodać plik do projektu kodu źródłowego zamiast tego projektu.
Generowanie nowego typu, okno dialogowe
Kliknij OK , aby zamknąć okno dialogowe i utworzyć nowy plik.
W Solution Explorer, Szukaj w węźle projektu GFUDemo_VB lub GFUDemo_CS, aby sprawdzić, czy nowe Automobile.vb lub Automobile.cs plik istnieje.W edytorze kodu fokus jest nadal w AutomobileTest.DefaultAutomobileIsInitializedCorrectly.Można kontynuować napisać taki test minimum przerwy.
Aby wygenerować skrótowej własności
Założono specyfikacji produktu stanowi, że Automobile klasa ma dwie właściwości publicznej o nazwie Model i TopSpeed.Te właściwości musi być zainicjowany z wartościami domyślnymi "Not specified" i -1 przez konstruktora domyślnego.Następujące badania jednostki sprawdzi, że domyślnego konstruktora ustawia właściwości domyślne poprawne wartości.
Dodaj następujący wiersz kodu DefaultAutomobileIsInitializedCorrectly.
Assert.IsTrue((myAuto.Model = "Not specified") And (myAuto.TopSpeed = -1))
Assert.IsTrue((myAuto.Model == "Not specified") && (myAuto.TopSpeed == -1));
Ponieważ kod odwołuje się do dwóch niezdefiniowanych właściwości na Automobile, tagu inteligentnego.Kliknij przycisk tagu inteligentnego do Model i kliknij przycisk skrótowych właściwość Generate.Generowanie skrótowej właściwości dla TopSpeed właściwość również.
W Automobile klasy, rodzaje nowe właściwości są poprawnie wywnioskowane z kontekstu.
Na następującej ilustracji pokazano menu skrótów tagu inteligentnego.
Visual Basic
Visual C#
Aby zlokalizować kod źródłowy
Użyj Przejdź do funkcji, aby przejść do pliku Automobile.cs lub Automobile.vb kodu źródłowego, dzięki czemu można sprawdzić, że nowe właściwości zostały wygenerowane.
Przejdź do funkcja umożliwia szybkie wprowadź ciąg tekstowy, na przykład wpisz nazwę lub część nazwy i przejdź do żądanej lokalizacji, klikając element na liście wyników.
Otwórz Przejdź do okno dialogowe, klikając w edytorze kodu i naciskając klawisze CTRL +, (CTRL + przecinek).W polu tekstowym wpisz samochodu.Kliknij samochodu klasy na liście, a następnie kliknij przycisk OK.
Przejdź do okno przedstawiono na poniższej ilustracji.
Nawiguj do okna
Aby wygenerować skrótowej dla konstruktora new
W tej metodzie badawczej wygeneruje zostanie zainicjowany tylko z konstruktora Model i TopSpeed można określić wartości właściwości.Później należy dodać więcej kodu do wykonania testu.Dodaj następującą metodę badań dodatkowych do użytkownika AutomobileTest klasy.
<TestMethod()> Public Sub AutomobileWithModelNameCanStart() Dim model As String = "Contoso" Dim topSpeed As Integer = 199 Dim myAuto As New Automobile(model, topSpeed) End Sub
[TestMethod] public void AutomobileWithModelNameCanStart() { string model = "Contoso"; int topSpeed = 199; Automobile myAuto = new Automobile(model, topSpeed); }
Kliknij przycisk tagu inteligentnego mocy nowego konstruktora klasy, a następnie kliknij przycisk skrótowych konstruktora Generate.W Automobile plik klasy, należy zauważyć, że konstruktora new zbadała nazwy zmiennych lokalnych, które są używane w wywołaniu konstruktora, znaleźć właściwości, które mają takie same nazwy w Automobile klasy i kod podany w treści konstruktora do przechowywania wartości argumentu w Model i TopSpeed właściwości.(W Visual Basic, _model i _topSpeed pól w konstruktora new są polami oporowe niejawnie zdefiniowanych dla Model i TopSpeed właściwości.)
Po wygenerowaniu konstruktora new linią falistą pojawia się w obszarze wywołanie konstruktora domyślnego w DefaultAutomobileIsInitializedCorrectly.Komunikat o błędzie stwierdza, że Automobile klasa ma nie używającej zero argumentów konstruktora.Aby wygenerować konstruktora domyślnego jawne, który nie ma parametrów, kliknij tag inteligentny, a następnie kliknij przycisk skrótowych konstruktora Generate.
Aby wygenerować skrótowej metody
Założono, że specyfikacja Państwa nowy Automobile można umieścić w stan działania, jeśli jego Model i TopSpeed właściwości są ustawione na coś innego niż domyślne wartości.Dodaj następujące wiersze do AutomobileWithModelNameCanStart metody.
myAuto.Start() Assert.IsTrue(myAuto.IsRunning = True)
myAuto.Start(); Assert.IsTrue(myAuto.IsRunning == true);
Kliknij przycisk tagu inteligentnego do myAuto.Start metody wywołania, a następnie kliknij przycisk skrótowych metoda generowanie.
Kliknij przycisk tagu inteligentnego do IsRunning właściwość, a następnie kliknij przycisk skrótowych właściwość Generuj.Automobile Klasy zawiera teraz następujący kod.
Public Class Automobile Sub New(ByVal model As String, ByVal topSpeed As Integer) _model = model _topSpeed = topSpeed End Sub Sub New() ' TODO: Complete member initialization End Sub Property Model() As String Property TopSpeed As Integer Property IsRunning As Boolean Sub Start() Throw New NotImplementedException End Sub End Class
public class Automobile { public string Model { get; set; } public int TopSpeed { get; set; } public Automobile(string model, int topSpeed) { this.Model = model; this.TopSpeed = topSpeed; } public Automobile() { // TODO: Complete member initialization } public void Start() { throw new NotImplementedException(); } public bool IsRunning { get; set; } }
Aby uruchomić testy
Na Test jednostki menu, wskaż Uruchomić testy, a następnie kliknij przycisk Wszystkie testy.To polecenie uruchamia wszystkie testy w wszystkich ram test napisanych dla bieżącego rozwiązania.
W tym przypadku istnieją dwa testy i obaj nie, zgodnie z oczekiwaniami.DefaultAutomobileIsInitializedCorrectly Test zakończy się niepowodzeniem, ponieważ Assert.IsTrue warunkiem zwraca False.AutomobileWithModelNameCanStart Test zakończy się niepowodzeniem, ponieważ Start metodę w Automobile klasy zgłasza wyjątek.
Wyniki testu okno przedstawiono na poniższej ilustracji.
Okno wyniki badania
W Wyników badania okno, kliknij dwukrotnie w każdym wierszu wynik badania, aby przejść do lokalizacji każdego testu uszkodzenia.
Wprowadzenie kodu źródłowego
Dodaj następujący kod do domyślnego konstruktora tak że Model, TopSpeed i IsRunning właściwości są inicjowane poprawne domyślne wartości z "Not specified", -1, i True (true).
Sub New() Model = "Not specified" TopSpeed = -1 IsRunning = True End Sub
public Automobile() { this.Model = "Not specified"; this.TopSpeed = -1; this.IsRunning = true; }
Gdy Start wywoływana jest metoda, należy go ustawić IsRunning flagi na wartość true tylko wtedy, gdy Model lub TopSpeed właściwości są ustawione na coś innego niż ich wartości domyślne.Usuń NotImplementedException z metody ciała i Dodaj następujący kod.
Sub Start() If Model <> "Not specified" Or TopSpeed <> -1 Then IsRunning = True Else IsRunning = False End If End Sub
public void Start() { if (this.Model != "Not specified" || this.TopSpeed != -1) this.IsRunning = true; else this.IsRunning = false; }
Aby ponownie uruchomić testy
Na Test menu, wskaż uruchomić, a następnie kliknij przycisk Wszystkie testy w roztworze.Tym razem testy przechodzą.Wyniki testu okno przedstawiono na poniższej ilustracji.
Okno wyniki badania
Zobacz też
Koncepcje
Generowanie na podstawie sposobu użycia
Weryfikowanie kodu przy użyciu testów jednostkowych