跳到主要内容
版本:11.0.0

Manual Setup of Headless Platform

注意

这个页面介绍了Headless平台的一个高级使用场景。我们建议使用XUnitNUnit测试框架。

安装包

要设置Headless平台,您需要安装两个包:

提示

Headless平台不需要任何特定的主题,可以用任何其他主题替换FluentTheme。

设置应用程序

与任何其他Avalonia应用程序一样,需要创建一个Application实例,并应用主题。在使用Headless平台时,设置与常规Avalonia应用程序并没有太大区别,大部分可以重用。

<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Tests.App">
<Application.Styles>
<FluentTheme />
</Application.Styles>
</Application>

以及代码:

using Avalonia;
using Avalonia.Headless;

public class App : Application
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
}

运行Headless会话

using Avalonia.Controls;
using Avalonia.Headless;

// 启动Headless会话,传递Application类型。
using var session = HeadlessUnitTestSession.StartNew(typeof(App));

// 由于Headless会话在内部有自己的线程,我们需要在那里分发操作:
await session.Dispatch(() =>
{
// 设置控件:
var textBox = new TextBox();
var window = new Window { Content = textBox };

// 打开窗口:
window.Show();

// 焦点放在文本框上:
textBox.Focus();

// 模拟文本输入:
window.KeyTextInput("Hello World");

// 断言:
if (textBox.Text != "Hello World")
{
throw new Exception("Assert");
}
}, CancellationToken.None);