按照这个原型进行单元测试,我在使用 JS 互操作时遇到了问题。
[Test]
public void ExampleTest()
{
var component = host.AddComponent<MyComponent>();
}
Run Code Online (Sandbox Code Playgroud)
只是添加一个使用 IJSRuntime 的组件会导致以下异常
System.InvalidOperationException:无法为“Application.Components.MyComponent”类型的属性“JsRuntime”提供值。没有“Microsoft.JSInterop.IJSRuntime”类型的注册服务。
JS 互操作没有做任何有趣的事情,它只是一个关注元素的 void 函数 - 我不在乎测试它,我只想继续为组件本身编写测试。
如何使用 Moq 来模拟 IJSRuntime?
当我尝试类似的东西时
[Test]
public void ExampleTest()
{
var jsRuntimeMock = new Mock<IJSRuntime>();
host.AddService(jsRuntimeMock);
var component = host.AddComponent<MyComponent>();
}
Run Code Online (Sandbox Code Playgroud)
我仍然得到例外
好吧,我对java非常不好(说实话,我讨厌编程,我更喜欢网络).无论如何,由于这是针对大学的,我实际上无法分享大部分代码而不用于学术不端行为,尽管我可以自由地寻求帮助.
我有一个带有一堆名字的JList,以及一个用于这些名称值的数组
final Double[] filmcost = { 5.00, 5.50, 7.00, 6.00, 5.00 };
Run Code Online (Sandbox Code Playgroud)
我想要做的是当有人从列表中选择某些东西时,它会将值分配给变量(它还将文本框设置为来自另一个数组的字符串,但这样可以正常工作).
所以我得到了我的变量
protected double filmCost;
Run Code Online (Sandbox Code Playgroud)
这是ListSelectionListener
filmList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
filmCost.setDouble(filmcost[filmList.getSelectedIndex()]);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,它抱怨它"无法在原始类型double上调用set Double(Double)".我觉得解决方案非常简单,但我现在已经坚持了一个多小时.