小编Joe*_*ger的帖子

如何最小化返回“ this”的方法

我有一个界面

interface IService
{
    IService Configure();
    bool Run();
}
Run Code Online (Sandbox Code Playgroud)

“真正的”实现是这样做的:

class RealService : IService
{
    public IService Configure()
    {
        return this;
    }

    public bool Run()
    {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Moq模拟服务将创建Configure()该返回的默认实现null

有没有一种方法可以在Moq中设置返回模拟实例的方法?

c# unit-testing moq

4
推荐指数
1
解决办法
1185
查看次数

“ git subtree pull”和“ git pull -s subtree”和有什么不一样

我们遇到了以下命令的问题:

git subtree pull --prefix=Root squash root master
Run Code Online (Sandbox Code Playgroud)

正在将代码从根存储库中拉入。目录而不是Root目录。

该命令在过去运行良好。唯一的区别是,自从完成拉动以来已经有一段时间了,因此有很多要合并的更改。

我似乎找不到关于“ git subtree”的任何正式文档,但是与“ git pull -s subtree”一起使用的子树合并策略有很多。有什么区别(如果有)?

git git-subtree

2
推荐指数
1
解决办法
2984
查看次数

将字段从int转换为int64时无效的程序

我在生成的代理中使用以下代码进行版本跟踪:

ConstructorBuilder defaultConstructor = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, Type.EmptyTypes);//typeBuilder.DefineDefaultConstructor(MethodAttributes.Public);

var defaultConstructorIL = defaultConstructor.GetILGenerator();
defaultConstructorIL.Emit(OpCodes.Ldarg_0);
defaultConstructorIL.Emit(OpCodes.Call, type.GetConstructor(Type.EmptyTypes));
defaultConstructorIL.Emit(OpCodes.Ldarg_0);
defaultConstructorIL.Emit(OpCodes.Ldc_I4, 0);
defaultConstructorIL.Emit(OpCodes.Stfld, version);
defaultConstructorIL.Emit(OpCodes.Ldarg_0);
defaultConstructorIL.Emit(OpCodes.Call, typeof(DateTime).GetProperty("UtcNow", BindingFlags.Public | BindingFlags.Static).GetGetMethod());
defaultConstructorIL.Emit(OpCodes.Stfld, lastUpdate);
defaultConstructorIL.Emit(OpCodes.Ret);
Run Code Online (Sandbox Code Playgroud)

version是一个类型为"int"的FieldBuilder.在此配置中,我可以创建代理类型的实例,代理通过我的所有单元测试.

如果我将版本更改为Int64类型的字段,并将IL修改为:

defaultConstructorIL.Emit(OpCodes.Ldarg_0);
defaultConstructorIL.Emit(OpCodes.Ldc_I8, 0);
defaultConstructorIL.Emit(OpCodes.Stfld, version);
Run Code Online (Sandbox Code Playgroud)

当我尝试实例化代理类型的实例时,我得到一个无效的程序异常.有人可以解释为什么改变类型会导致这种情况吗?

.net cil reflection.emit

1
推荐指数
1
解决办法
169
查看次数

使用gulp排除名为node_module的任何目录中的所有文件

我有一个嵌套node_module目录的目录结构.

root
    node_modules
    file.txt
    test
        node_modules
        file.txt
Run Code Online (Sandbox Code Playgroud)

我想生成:

root
    file.txt
    test
        file.txt
Run Code Online (Sandbox Code Playgroud)

glob模式正在逃避我.

我正在使用

gulp.src(['**/*', '!(**/*/node_modules)'])
Run Code Online (Sandbox Code Playgroud)

gulp

1
推荐指数
1
解决办法
424
查看次数

标签 统计

.net ×1

c# ×1

cil ×1

git ×1

git-subtree ×1

gulp ×1

moq ×1

reflection.emit ×1

unit-testing ×1