我正在使用Moq并且想要创建构建器类来创建具有预设合理默认值的模拟,可以根据需要在测试设置期间覆盖这些默认值.我采用的方法使用扩展方法,我传递输入参数值和预期输出.在这样做的过程中,我看到了在我看来是语义上等效的代码中的不同行为:在一个设置中直接传递It.IsAny()与在设置中间接传递It.IsAny()的值.例:
public interface IFoo
{
bool Bar(int value);
bool Bar2(int value);
}
public class Foo : IFoo
{
public bool Bar(int value) { return false; }
public bool Bar2(int value) { return false; }
}
var mock = new Mock<IFoo>();
mock.Setup(x => x.Bar(It.IsAny<int>())).Returns(true);
Assert.IsTrue(mock.Object.Bar(123)); // Succeeds
var myValue = It.IsAny<int>();
mock.Setup(x => x.Bar2(myValue)).Returns(true);
Assert.IsTrue(mock.Object.Bar2(123)); // Fails
Run Code Online (Sandbox Code Playgroud)
两个调用都是等价的(对我来说),但对Bar2的调用无法断言.为什么是这样?
如何将我的服务器组配置导出到 Azure Data Studio 中的文件?
我在我的应用程序解决方案中创建了一个工作区文件,其中包含用于故障排除等的有用查询。我还想包括与该解决方案相关的服务器的连接配置,以便任何开发人员都可以快速使用工作区查询,而不必询问哪个运行它们的服务器。
我今天更新了Microsoft Web Platform Installer(WPI)到v3.1,以便安装MVC 3 Tools Update.我注意到Visual Studio 2010 SP1没有标记为"已安装",但我上周已经通过WPI安装了它.有没有人知道这是WPI无法识别和安装组件的问题,还是SP1中的某些内容实际发生了变化?
附加信息:
我读了另一篇引用此reg键作为SP级别指标的文章:
密钥:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\10.0\procore
值:SPName = SP1