diff --git a/src/Assembly.cs b/src/Assembly.cs
index 92a57b785..1dcfc7065 100644
--- a/src/Assembly.cs
+++ b/src/Assembly.cs
@@ -1 +1 @@
-[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Egil.RazorComponents.Testing.Library.Tests")]
\ No newline at end of file
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Egil.RazorComponents.Testing.Library.Tests")]
diff --git a/src/Mocking/JSInterop/MissingMockJsRuntimeException.cs b/src/Mocking/JSInterop/MissingMockJsRuntimeException.cs
new file mode 100644
index 000000000..ef56da290
--- /dev/null
+++ b/src/Mocking/JSInterop/MissingMockJsRuntimeException.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Diagnostics.CodeAnalysis;
+
+namespace Egil.RazorComponents.Testing
+{
+ ///
+ /// Exception use to indicate that a MockJsRuntime is required by a test
+ /// but was not provided.
+ ///
+ [SuppressMessage("Design", "CA1032:Implement standard exception constructors", Justification = "")]
+ public class MissingMockJsRuntimeException : Exception
+ {
+ ///
+ /// Identifer string used in the JSInvoke method.
+ ///
+ public string Identifier { get; }
+
+ ///
+ /// Arguments passed to the JSInvoke method.
+ ///
+ public IReadOnlyList