根据这个原型进行单元测试时,使用JS互操作时遇到了问题。
[Test]
public void ExampleTest()
{
var component = host.AddComponent<MyComponent>();
}
仅仅添加一个使用IJSRuntime的组件就会导致以下异常:
System.InvalidOperationException:无法为类型“Application.Components.MyComponent”上的属性'JsRuntime'提供值。没有注册类型为“Microsoft.JSInterop.IJSRuntime”的服务。
JS互操作并没有做任何有趣的事情,它只是一个聚焦元素的空函数 - 我不关心测试它,我只想能够继续编写组件本身的测试。
如何使用Moq来模拟IJSRuntime?
当我尝试像这样做时:
[Test]
public void ExampleTest()
{
var jsRuntimeMock = new Mock<IJSRuntime>();
host.AddService(jsRuntimeMock);
var component = host.AddComponent<MyComponent>();
}
我仍然收到异常