Se avete seguito i passi del post precedente
e provate a lanciare il test dovrebbe aprirsi una finestra che si chiude quasi istantaneamente.
Proviamo ora a simulare il click ad un pulsante. Per prima cosa aggiungiamo il controllo alla main window ricordandoci
di dargli un nome (nel nostro caso buttonControl).
Lo xaml dovrebbe essere qualcosa di analogo:
<Window x:Class="WPFAndNUnit.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas>
<Button Name="buttonControl" >A button</Button>
</Canvas>
</Window>
Ora possiamo usare il metodo FindName per trovare il nostro button e quindi modifichiamo il test come segue:
[Test]
public void ShowTheMainWindow()
{
var window = new MainWindow();
window.Show();
var button = (Button) window.FindName("buttonControl");
Assert.That(button, Is.Not.Null);
}
Se eseguiamo il test dovrebbe passare altrimenti ricontrollate i passi precedenti.
Per simulare il click al pulsante usiamo il metodo RaiseEvent come segue:
button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
Se proviamo ad aggiungere un comportamento all'evento click del pulsante verifichiamo che venga eseguito correttamente.
In sinstesi la tecnica consiste in: dare un nome ai controlli con cui vogliamo interagire nel test e usare il metodo RaiseEvent
per simulare le azioni dell'utente.