我有一个Moq setup语句,它与一个基于传入的枚举值的conditional/generic Returns语句类似:
MyLogic.Setup(m => m.MyLogicMethod(It.IsAny<MyEnum>()))
.Returns<MyEnum>((x) =>
{
switch (x)
{
case MyEnum.Enum1: return "stringval1";
case MyEnum.Enum2: return "stringval2";
case MyEnum.Enum3: return "stringval3";
case MyEnum.Enum4: return "stringval4";
case MyEnum.Enum5: return "stringval5";
default: return string.Empty;
}
});
我现在已经将正在测试的方法更改为异步(返回
MyLogic.Setup(m => m.MyLogicMethodAsync(It.IsAny<MyEnum>()))
.Returns????
Moq不提供泛型返回sync,
Moq确实提供了一个通用的
//
// Summary:
// Specifies a function that will calculate the value to return from the asynchronous
// method.
//
// Parameters:
// mock:
// Returns verb which represents the mocked type and the task of return type
//
// valueFunction:
// The function that will calculate the return value.
//
// Type parameters:
// TMock:
// Mocked type.
//
// TResult:
// Type of the return value.
public static IReturnsResult<TMock> ReturnsAsync<TMock, TResult>(this IReturns<TMock, Task<TResult>> mock, Func<TResult> valueFunction) where TMock : class;
装配Moq,版本=4.15.0.0
将泛型参数移到委托中,以便可以隐含泛型方法。
MyLogic
.Setup(m => m.MyLogicMethodAsync(It.IsAny<MyEnum>()))
.ReturnsAsync((MyEnum x) => {
switch (x) {
case MyEnum.Enum1: return "stringval1";
case MyEnum.Enum2: return "stringval2";
case MyEnum.Enum3: return "stringval3";
case MyEnum.Enum4: return "stringval4";
case MyEnum.Enum5: return "stringval5";
default: return string.Empty;
}
});
您不必使用
MyLogic.Setup(m => m.MyLogicMethod(It.IsAny<MyEnum>()))
.Returns<MyEnum>((x) =>
{
string returnValue = null;
switch (x)
{
case MyEnum.Enum1: returnValue = "stringval1";
case MyEnum.Enum2: returnValue = "stringval2";
case MyEnum.Enum3: returnValue = "stringval3";
case MyEnum.Enum4: returnValue = "stringval4";
case MyEnum.Enum5: returnValue = "stringval5";
default: returnValue = string.Empty;
}
return Task.FromResult(returnValue);
});
我使用Swagger 2.0来生成文档。在我的控制器类中,我有一些操作,比如: 为响应上述操作而生成的Swagger文档: 这里,Swagger留档没有说响应是
我试图弄清楚如何处理从返回的数据。 我有一个活动,我正在调用异步Firebase get操作(存在于其他类中的操作),并且我想使用检索到的ArrayList的大小更新活动中存在的。以下是我在活动创建中获取的 Firebase 调用: 这是我的Firebase操作: 在Android中,最好的方法是什么?是否有可能实现各种适配器或完成处理程序?
我试图创建一个返回泛型类型参数的方法。 我有一个类车辆订单扩展抽象类订单。在类订单中,我创建了一个抽象方法接收HiredObject。这个方法不会接收任何参数,并将返回一个泛型。 我在VehicleOrder类中实现了这个方法,并将其设置为返回类参数vehicle。 问题是,当我实例化一个新的VeilceOrderorororororororororororororderororororororo
我试图创建一个Java方法,它接受一个对象类型和它应该转换成的数据类型。 例如,如果我应该能够返回一个值1作为Int或双根据需要。我使用类传递数据类型作为参数。 问题:如何使方法泛型以接受基于输入参数的返回类型? 下面的代码只是一个示例,它可能在语法上不正确,用于解释我的问题。
我有一个问题,从抽象类中重写泛型方法。 这是我的抽象类: 当我创建类(B)来实现类(a)时,如下所示: 显示了(getData)方法中的以下编译错误: ”“B。getData“(“字符串函数(字符串)”不是“a”的有效重写。getData'('字符串函数(类型)‘)。dart(无效覆盖) 以及返回语句中的此错误: 类型为“String”的值不能从方法'getData'返回,因为它的返回类型为'St
问题内容: 背景 我曾经写过这种方法: 应该这样称呼它: 这很好用(尽管我在研究当前容易出错的问题时在这里的答案中已经看到)。 目前的情况 无论如何,现在我正在编写以下代码(在扩展javax.servlet.jsp.tagext.TagSupport的类中): 目的是可以这样称呼: 我的评估方法中的代码显然不起作用。的第二个参数应该是Class对象。这导致我: 我的问题 如何获得通用(返回)类型的
本文向大家介绍Nodejs异步回调的优雅处理方法,包括了Nodejs异步回调的优雅处理方法的使用技巧和注意事项,需要的朋友参考一下 前言 Nodejs最大的亮点就在于事件驱动, 非阻塞I/O 模型,这使得Nodejs具有很强的并发处理能力,非常适合编写网络应用。在Nodejs中大部分的I/O操作几乎都是异步的,也就是我们处理I/O的操作结果基本上都需要在回调函数中处理,比如下面的这个读取文件内容的