我有一个奇怪的情况,我需要将委托的名称作为字符串.我有一个看起来像这样的通用方法.
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"
.所以看起来它给了我初始调用的方法名称而不是委托的名称.
有人知道怎么做吗?
这似乎很简单,但我似乎无法让它工作.
我有一个带有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并且无法找到任何好的资源来完成我需要的工作.
我有一个数据接口类,它有一个Get方法,它通过存储过程返回一个数据集.这是代码编写的方式,我现在无法改变它,因此必须以这种方式完成.
我想通过模拟数据集并返回数据来测试这个类,所以我不必实际进行数据库调用.
是否有人这样做,如果是这样,哪里是开始这样做的好地方?
我有一个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属性组成,但我不确定.
我正在寻找一个支持VI命令的红宝石编辑器。我一直在使用gvim,但是拥有一个可帮助我在文件之间导航的IDE会很好。有什么建议么?
我意识到还有一个类似的Windows Ruby on Rails编辑器问题,但是它没有解决VI特定的编辑器。
我觉得这个问题的答案是否定的,但我想我还是会问.
长话短说我意外地git clean -d -f
在一个分支上做了一个并且丢失了我需要的大约20个文件.这些文件尚未提交,因为据我所知,git不应该知道它们.有什么方法可以让这些文件回来吗?