小编Ada*_*dam的帖子

获取Action/Func Delegate的名称

我有一个奇怪的情况,我需要将委托的名称作为字符串.我有一个看起来像这样的通用方法.

private T Get<T>(T task, Action<T> method) where T : class
{
  string methodName = method.Method.Name //Should return Bark
}
Run Code Online (Sandbox Code Playgroud)

而我这样称呼它

private void MakeDogBark()
{
  dog = Get(dog, x=>x.Bark());
}
Run Code Online (Sandbox Code Playgroud)

但我没有看到"树皮",而是看到了这一点"<MakeDogBark>b__19".所以看起来它给了我初始调用的方法名称而不是委托的名称.

有人知道怎么做吗?

c#

44
推荐指数
2
解决办法
2万
查看次数

如何使用Moq调用类中的另一个方法

这似乎很简单,但我似乎无法让它工作.

我有一个带有Save方法的类,它只调用另一个方法ShouldBeCalled().我想验证,如果我调用Save(),其他方法ShouldBeCalled()至少执行一次.我以为我可以做到以下几点.

public class ClassA
{
    public virtual void Save()
    {
        ShouldBeCalled();
    }

    public virtual void ShouldBeCalled()
    {
        //This should get executed
    }
}

[TestFixture]
public class ClassA_Test
{
    [Test]
    public void Save_Should_Call_ShouldBeCalled()
    {
        var mockClassA = new Mock<ClassA>();
        mockClassA.Object.Save();

        mockClassA.Verify(x => x.ShouldBeCalled(), Times.AtLeastOnce());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到异常"模拟的预期调用至少一次,但从未执行过:x => x.ShouldBeCalled()"

这只是一个猜测,但是Moq用它自己的版本重写了Save()方法,它忽略了我在真实对象的Save()方法中的任何东西.

moq

15
推荐指数
2
解决办法
9352
查看次数

使用Moq模拟数据集

我正在尝试开始使用Moq并且无法找到任何好的资源来完成我需要的工作.

我有一个数据接口类,它有一个Get方法,它通过存储过程返回一个数据集.这是代码编写的方式,我现在无法改变它,因此必须以这种方式完成.

我想通过模拟数据集并返回数据来测试这个类,所以我不必实际进行数据库调用.

是否有人这样做,如果是这样,哪里是开始这样做的好地方?

moq

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

从现有表达式创建新表达式

我有一个Expression<Func<T,DateTime>>我想采用表达式的DateTime部分并从中拉出月份.所以我会把它变成一个Expression<Func<T,int>>我不确定如何做到这一点.我看了一下ExpressionTree访客,但我不能让它像我需要的那样工作.以下是DateTime表达式的示例

DateTimeExpression http://img442.imageshack.us/img442/6545/datetimeexpression.png

以下是我想要创建 MonthExpression的示例http://img203.imageshack.us/img203/8013/datetimemonthexpression.png

看起来我需要创建一个新的MemberExpression,它由DateTime表达式的Month属性组成,但我不确定.

.net c# lambda expression expression-trees

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

带有VI命令的Windows最佳Ruby编辑器

我正在寻找一个支持VI命令的红宝石编辑器。我一直在使用gvim,但是拥有一个可帮助我在文件之间导航的IDE会很好。有什么建议么?

我意识到还有一个类似的Windows Ruby on Rails编辑器问题,但是它没有解决VI特定的编辑器。

ruby windows ruby-on-rails

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

在git clean -d -f之后恢复丢失的无版本文件

我觉得这个问题的答案是否定的,但我想我还是会问.

长话短说我意外地git clean -d -f在一个分支上做了一个并且丢失了我需要的大约20个文件.这些文件尚未提交,因为据我所知,git不应该知道它们.有什么方法可以让这些文件回来吗?

git

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

标签 统计

c# ×2

moq ×2

.net ×1

expression ×1

expression-trees ×1

git ×1

lambda ×1

ruby ×1

ruby-on-rails ×1

windows ×1