我有一个带有简单窗口的 wpf 应用程序,该窗口在绑定到 ViewModel 属性的文本框中显示文本。当我执行应用程序时,我可以在文本框中看到文本,但是当我执行基于白色的测试时,我随机得到不同的结果:
- 大多数时候,它不受约束并且测试失败。
- 有时它是绑定的(我可以看到白色引发的窗口中的文本),但是当代码想要获取窗口时,白色会抛出异常。
- 有时(真的很少)它有效。
我试图执行的代码是这样的:
<Window x:Class="Sample.Tests.Wpf.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">
<Grid>
<TextBox Height="23"
HorizontalAlignment="Left"
Margin="22,19,0,0"
Name="name"
Text="{Binding Path=CountryName}"
VerticalAlignment="Top"
Width="120" />
</Grid>
</Window>
后面的代码:
namespace Sample.Tests.Wpf
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
Loaded += delegate { DataContext = new MainWindowViewModel
{
CountryName = "Argentina"
};
};
}
}
}
测试看起来像:
var app = Application.Launch("Sample.Tests.Wpf.exe");
var window = app.GetWindow("MainWindow");
Assert.IsNotNull(window);
var textbox = window.Get<TextBox>("name");
Assert.AreEqual("Argentina", textbox.Text);
任何想法?