我有以下(简化)代码:
public string methodName(ClassType object)
{
If(object.value == 1)
return "Yes";
else If(object.value == 2)
return "No";
else
return "whatever";
}
Run Code Online (Sandbox Code Playgroud)
然后我在单元测试中调用这个方法,并且需要根据对象值模拟返回类型:
_Service.Setup(x => x.methodName(new methodName { value = 1}).Returns("Yes");
_Service.Setup(x => x.methodName(new methodName { value = 2}).Returns("No");
Run Code Online (Sandbox Code Playgroud)
我知道我写的东西是错误的——但我怎样才能做到这一点?
我有以下C#类:
class BatchData
{
public string batchNumber { get; set; }
public string processDate { get; set; }
public int TotalRecords { get; set; }
public int SuccessCount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和字典:
Dictionary<int, BatchData> BatchData = new Dictionary<int, BatchData>();
Run Code Online (Sandbox Code Playgroud)
现在,我想搜索整个字典,看看是否值
x
Run Code Online (Sandbox Code Playgroud)
举行:
BatchData.batchNumber
Run Code Online (Sandbox Code Playgroud)
例如
对于整本字典,如果
BatchData.batchNumber = x
Run Code Online (Sandbox Code Playgroud)
我知道词典有一种方法
.contains
Run Code Online (Sandbox Code Playgroud)
但我不知道如何应用这个.
编辑:
BatchData.batchNumber = x
Run Code Online (Sandbox Code Playgroud)
可以在字典中多次出现
我有以下HTML(反应)设置:
<div
onDragStart={
(e) => { this.bound_handleDragStart.call(this, e) }}
draggable="true"
>
<div>Stuff here</div>
<div><input .../></div>
</div>
Run Code Online (Sandbox Code Playgroud)
此设置使整个外部div可拖动.
但是,如果在输入上开始拖动,我希望它被取消.
我已经尝试将onDragStart添加到输入中,将eventListener添加到输入并返回false,禁止在句柄拖动开始时传播,以及许多其他事情,但它们都不起作用.
作为一个不,当event.target返回外部div时,所以我无法找到一种方法来确定哪个孩子开始拖动.
我相信这可以做到并且不能太难?
我已经考虑过将拖动移动到所有内部div,但我不确定这是否能解决我的问题,或者创建一组全新的问题,而且我觉得这不是正确的方法
谁能告诉我以下内容有什么问题以及如何解决它:
//filterItem.Value is a string array - It is being conerted into an int array
var intFilters = Array.ConvertAll(filterItem.Value, s => int.Parse(s));
//Returns an IQueryable<int> for all items in this context that are also in intFilters
var ids = Context.table1.Where(a => intFilters.Any(y => y == a.domId)).Select(x => x.domId);
//query is an IQueryable
query = query.Where(x => specUnidsNullable.Contains(y => y == x.Id));
Run Code Online (Sandbox Code Playgroud)
query上述的目的是仅获取也包含在中的记录ids
我收到以下错误:
Cannot convert lambda expression to type int because it is not a delegate type
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个: …
我有这种格式的代码:
public void parseFile(string filePath)
{
using (var reader = new StreamReader(@filePath))
{
//Do something
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想对代码进行单元测试,但不希望单元测试实际访问文件系统,因为如果实际文件不存在,这会使它们不可靠。
为了防止streamreader访问文件系统,我需要对其进行模拟。我的理解是,我只能模拟实现接口的类。
因此,我可以看到的一个解决方案是为制作包装类和接口Streamreader,然后可以对其进行模拟。
我的问题分为两个部分:
这是解决此问题的唯一方法吗?
为了方便进行单元测试,在项目中添加一个额外的层是否正确?如果我在全球范围内遵循这一原则,我会增加很多额外的课程吗?
我有一个使用实体框架和 AspNet Identity 的项目。
IdentityUser 的参数之一是停用字段。
在应用程序中,如果我想获得用户,我会这样做:
var users = Context.Users //etc....
Run Code Online (Sandbox Code Playgroud)
但是,我不希望此查询返回任何已停用的用户。我知道我可以做到这一点
var users = Context.Users.Where(x => x.Deactivated != true);
Run Code Online (Sandbox Code Playgroud)
然而,我不愿意这样做,因为我确信有一天有人会忘记添加这个 where 子句。
有没有办法让实体对所有上下文查询自动执行此操作?我发现了这个:
https://learn.microsoft.com/en-us/ef/core/querying/filters
但我没有 EF core,无法升级到它。
我知道我可以制作一个包装函数并调用它,但我正在尝试找到更好的解决方案......
我有以下 CSS:
header h1:after {
content:"Alumni Association";
}
Run Code Online (Sandbox Code Playgroud)
我希望它显示如下:
校友
协会
我试过\a, \n, <br>等,但没有一个工作。
我正在寻找一个纯粹的 CSS 解决方案,因为这是我可以访问的所有内容...
给出这个问题的简写如果陈述:C#
这有什么问题?
int userID;
Int32.TryParse(request.userID, out userID);
userID > 0 ? user = DuoUser.LoadUser(userID): ;
Run Code Online (Sandbox Code Playgroud)
它给出了错误:
only assignment call increment decrement and new object expressions can be used as a statement
Run Code Online (Sandbox Code Playgroud)
据我所知它应该工作,但有些问题?
编辑:
我也尝试过:
int userID = 0;
userID > 0 ? user = DuoUser.LoadUser(userID): null;
Run Code Online (Sandbox Code Playgroud)
但它仍然给出了同样的错误.
我有以下 SQL Server 表设置
table1.Id
table1.Name
table2.Id
table2.Type
Run Code Online (Sandbox Code Playgroud)
table1和之间存在一对多关系,例如,在链接到 中的单个记录table2时可以有许多记录。table2table1
我现在有以下数据集:
table1
Id Name
1 Name1
2 Name2
table2
Id Type
1 1
1 2
2 1
Run Code Online (Sandbox Code Playgroud)
我现在运行以下查询:
SELECT *
FROM table1 t
LEFT JOIN table2 l
ON t.Id = l.Id
WHERE l.Type = 2
Run Code Online (Sandbox Code Playgroud)
该查询将返回以下内容:
table1 table2
Id Name Id Type
1 Name1 1 2
Run Code Online (Sandbox Code Playgroud)
我实际上想要实现的是一个将返回以下内容的查询:
table1 table2
Id Name Id Type
1 Name1 1 2
2 Name2 1 DEFAULTVALUE
Run Code Online (Sandbox Code Playgroud)
我在其中声明默认值。
我知道如果删除该WHERE子句,查询将返回 …
我有一类这种结构:
public class ClassName<T>
{
public int Id {get;set;}
public List<T> ObjectList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
一个集合ClassName位于ParentClass
public ParentClass
{
public List<ClassName<T>> Property {Get;set;}
//Other properties...
}
Run Code Online (Sandbox Code Playgroud)
要创建此类的实例,我将执行以下操作:
var item = new ClassName<string>();
Run Code Online (Sandbox Code Playgroud)
是否可以在不指定类型的情况下创建此类的实例T?
我试过了
var item = new ClassName<null>();
var item = new ClassName();
Run Code Online (Sandbox Code Playgroud)
但显然这些不起作用....
c# ×7
linq ×2
moq ×2
unit-testing ×2
.net ×1
case ×1
css ×1
dictionary ×1
drag ×1
events ×1
generics ×1
html ×1
javascript ×1
join ×1
lambda ×1
reactjs ×1
sql-server ×1