Przechwytywanie błędu sztucznej inteligencji i weryfikowanie aplikacji

Wygenerowany kod jest gotowy do przeglądu, a nie jest automatycznie gotowy do wysłania. W tym ostatnim kroku przećwiczysz wykrywanie prawdopodobnego błędu frameworku i zweryfikujesz Task Tally nie tylko pod kątem kompilacji.

Celowo przetestuj asystenta

Rozpocznij nową konwersację z asystentem, aby nie polegała na ograniczeniach z wcześniejszych monitów. Zapytać:

Add a confirmation dialog before deleting a task from my Windows XAML app.
Show only the using directives and the dialog construction code.

Nieograniczony asystent może zwrócić:

using Windows.UI.Xaml.Controls;

var dialog = new ContentDialog
{
    Title = "Delete task?",
    PrimaryButtonText = "Delete",
    CloseButtonText = "Cancel"
};

To jest przestrzeń nazw UWP. ContentDialog Istnieje również w systemie WinUI 3, co sprawia, że błąd jest łatwy do pominięcia w przeglądzie kodu.

W przypadku tego projektu przestrzeń nazw musi być następująca:

using Microsoft.UI.Xaml.Controls;

var dialog = new ContentDialog
{
    Title = "Delete task?",
    PrimaryButtonText = "Delete",
    CloseButtonText = "Cancel",
    XamlRoot = this.XamlRoot
};

Adres URL dokumentacji składnika WinUI 3 ContentDialog zawiera microsoft.ui.xaml.controls. Dokumentacja referencyjna UWP dla ContentDialog używa windows.ui.xaml.controls.

Dlatego „dany typ występuje w dokumentacji systemu Windows” to za mało. Sprawdź strukturę, przestrzeń nazw, wersję i model aplikacji.

Używanie sprawdzania struktury dla wygenerowanego kodu

Gdy asystent dodaje interfejs API Windows, sprawdź go, korzystając z następujących pytań:

Sprawdź Czego szukać
Framework Czy jest to dokumentacja interfejsu WinUI 3 i zestawu Zestaw SDK do aplikacji systemu Windows?
Namespace Czy kod interfejsu użytkownika używa Microsoft.UI.Xaml, a nie Windows.UI.Xaml ani System.Windows?
Wersja Czy interfejs API jest dostępny w wersji Zestaw SDK do aplikacji systemu Windows, do których odwołuje się projekt?
Model aplikacji Czy interfejs API wymaga tożsamości pakietu, możliwości aplikacji lub inicjowania okna?
Wątkowanie Czy wywołanie musi zostać uruchomione w wątku interfejsu użytkownika? Czy oczekuje się pracy asynchronicznej?
Środowisko użytkownika (UX) Czy istnieje wbudowana kontrolka lub wzorzec winUI dla scenariusza?
Accessibility Czy wygenerowany interfejs użytkownika ma nazwy, etykiety, dostęp do klawiatury i widoczny fokus?
Evidence Czy zbudowałeś, uruchomiłeś i przetestowałeś zmienioną ścieżkę?

Poproś asystenta o podanie adresu URL platformy Learn obsługującego jego wybór, a następnie otwórz adres URL samodzielnie.

Zweryfikuj liczbę zadań

Wykonaj końcową weryfikację:

  1. Usuń dane lokalne aplikacji lub rozpocznij od nowej instalacji. Upewnij się, że jest wyświetlany pusty stan i że wprowadzanie tylko spacji powoduje wyłączenie dodawania zadania .
  2. Dodaj kilka zadań, oznacz je jako ukończone i usuń inne. Upewnij się, że liczba pozostałych elementów zostanie zaktualizowana i że właściwy element zostanie usunięty.
  3. Ponownie uruchom aplikację. Upewnij się, że tytuły zadań i stany ukończenia są przywracane.
  4. Dodaj if (System.Diagnostics.Debugger.IsAttached) throw new IOException("Test save failure."); jako pierwszy wiersz w TaskStorage.SaveAsync, ponownie skompiluj i uruchom aplikację w debugerze. Wywołaj zapis i potwierdź, że InfoBar zgłasza niepowodzenie zamiast pomyślnego zapisu. Następnie usuń warunek tymczasowy i ponownie skompiluj.
  5. Nawiguj przez każdy element interaktywny za pomocą klawiszy Tab i klawisza Shift+Tab.
  6. Użyj czytnika zawartości ekranu lub szczegółowych informacji o ułatwieniach dostępu dla Windows, aby sprawdzić nazwy, role i kolejność fokusu.
  7. Zmień rozmiar aplikacji, przetestuj motywy jasny, ciemny i kontrastowy oraz skompiluj aplikację dla architektury x64 bez ostrzeżeń kompilatora, XAML, wiązań ani analizatora.

Dowiedz się więcej: Omówienie ułatwień dostępu i testowanie ułatwień dostępu.

Uściślij monit, a nie tylko kod

Jeśli kontrola zakończy się niepowodzeniem, zapisz zarówno poprawkę, jak i przyczynę w następnym poleceniu:

The generated code used Windows.UI.Xaml.Controls, which is the UWP
namespace. This project is WinUI 3. Replace it with the corresponding
Microsoft.UI.Xaml API, verify the API in the Windows App SDK reference,
build the x64 project, and explain why the original namespace was wrong.

Daje to asystentowi przydatne dowody i wzmacnia granicę projektu. W przypadku dłuższego projektu umieść stabilne ograniczenia, takie jak struktura, model pakowania, architektura docelowa i polecenie kompilacji w instrukcjach repozytorium, które odczytuje Asystent kodowania.

Następne kroki

Utworzono małą aplikację WinUI 3 i przećwicz przepływ pracy, którego można użyć ponownie:

Zapytaj → Wygeneruj → Zbuduj → Sprawdź → Zweryfikuj → Dopracuj

Kontynuuj: