diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ResourceDictionaryTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ResourceDictionaryTests.cs
new file mode 100644
index 0000000000..d0cdef3c0b
--- /dev/null
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ResourceDictionaryTests.cs
@@ -0,0 +1,123 @@
+// Copyright (c) The Avalonia Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+using Avalonia.Controls;
+using Avalonia.Controls.Presenters;
+using Avalonia.Controls.Templates;
+using Avalonia.Media;
+using Avalonia.Styling;
+using Avalonia.UnitTests;
+using Xunit;
+
+namespace Avalonia.Markup.Xaml.UnitTests.Xaml
+{
+ public class ResourceDictionaryTests : XamlTestBase
+ {
+ [Fact]
+ public void StaticResource_Works_In_ResourceDictionary()
+ {
+ using (StyledWindow())
+ {
+ var xaml = @"
+
+ Red
+
+";
+ var loader = new AvaloniaXamlLoader();
+ var resources = (ResourceDictionary)loader.Load(xaml);
+ var brush = (SolidColorBrush)resources["RedBrush"];
+
+ Assert.Equal(Colors.Red, brush.Color);
+ }
+ }
+
+ [Fact]
+ public void DynamicResource_Works_In_ResourceDictionary()
+ {
+ using (StyledWindow())
+ {
+ var xaml = @"
+
+ Red
+
+";
+ var loader = new AvaloniaXamlLoader();
+ var resources = (ResourceDictionary)loader.Load(xaml);
+ var brush = (SolidColorBrush)resources["RedBrush"];
+
+ Assert.Equal(Colors.Red, brush.Color);
+ }
+ }
+
+ [Fact]
+ public void DynamicResource_Finds_Resource_In_Parent_Dictionary()
+ {
+ var dictionaryXaml = @"
+
+
+";
+
+ using (StyledWindow(assets: ("test:dict.xaml", dictionaryXaml)))
+ {
+ var xaml = @"
+
+
+
+
+
+
+
+ Red
+
+
+";
+
+ var loader = new AvaloniaXamlLoader();
+ var window = (Window)loader.Load(xaml);
+ var button = window.FindControl