我正在尝试使用Moq来模拟界面:
public interface IMatchSetupRepository
{
IEnumerable<MatchSetup> GetAll();
}
Run Code Online (Sandbox Code Playgroud)
我在做:
var matchSetupRepository = new Mock<IMatchSetupRepository>();
matchSetupRepository
.Setup(ms => ms.GetAll())
.Returns(null);
Run Code Online (Sandbox Code Playgroud)
但由于错误,它甚至无法编译:
错误CS0121:以下方法或属性之间的调用不明确:'Moq.Language.IReturns <Data.Contract.IMatchSetupRepository,System.Collections.Generic.IEnumerable <Data.Model.MatchSetup >>.返回(System.Collections.Generic .IEnumerable <Data.Model.MatchSetup>)'和'Moq.Language.IReturns <Data.Contract.IMatchSetupRepository,System.Collections.Generic.IEnumerable <Data.Model.MatchSetup >>.返回(System.Func <System.Collections .Generic.IEnumerable <Data.Model.MatchSetup >>)"
我正在使用:
Moq.dll,v4.0.20926
我最近加入了一家他们使用TDD的公司,但我仍然不清楚,例如,我们有一个测试:
[TestMethod]
public void ShouldReturnGameIsRunning()
{
var game = new Mock<IGame>();
game.Setup(g => g.IsRunning).Returns(true);
Assert.IsTrue(game.Object.IsRunning);
}
Run Code Online (Sandbox Code Playgroud)
它的目的是什么?据我了解,这不测试任何东西!我之所以这么说是因为它嘲笑一个界面,并说,对于IsRunning,它返回true,它永远不会返回一个不同的值......
我可能错了,因为每个人都说这是一个很好的做法等等......或者这个测试是错的?
我从没有主键集的旧数据库/表导入超过600.000.000行,此表位于sql server 2005数据库中.我创建了一个工具,将这些数据导入到一个结构非常不同的新数据库中.问题是我想从任何原因恢复它停止的过程,如错误或网络错误.由于此表没有主键,我无法检查该行是否已导入.有谁知道如何识别每一行,以便我可以检查它是否已经导入?这个表有重复的行,我已经尝试计算所有列的哈希值,但是由于重复的行而无法正常工作...
谢谢!