在方法中传递一个模型int作为参数
本文关键字:模型 一个 int 参数 方法 | 更新日期: 2023-09-27 18:11:37
我正在写一个单元测试,我写了一个方法来通过测试参数。其中一个id是不同类型的整数。以下是我的内容:
服务层:
public IEnumerable<IElement> GetType(int id, int userId, ElementType type, int depth = 2)
{
using (var db = database.connection)
{
var _results = db.table<_ElementBase>(id, userId, type.ModelId, IElementExtensions.IElementFactory(), depthLevel: depth);
return _results.FilterByPermissions(userId);
}
}
应用模型:
public int ModelId { get; set; }
单元测试代码:
var _elements = _elementSvc.GetType(82,1,10,2);
这里它不像(10)它想要ElementType
嗯,是的,看看你的参数列表:
GetType(int id, int userId, ElementType type, int depth = 2)
您如何期望第三个参数(10)转换为ElementType
?你期望如何从中提取出ModelId
呢?
你应该改变GetType
直接取modelId
:
public IEnumerable<IElement> GetType(int id, int userId, int modelId, int depth = 2)
{
using (var db = database.connection)
{
var _results = db.table<_ElementBase>(id, userId, modelId,
IElementExtensions.IElementFactory(), depthLevel: depth);
return _results.FilterByPermissions(userId);
}
}
如果仍然需要原始签名,则可以重载该方法:
public IEnumerable<IElement> GetType(int id, int userId, ElementType type,
int depth = 2)
{
return GetType(id, userId, type.ModelId, depth);
}