Asp.net mvc 3 最小起订量单元试验
我正在使用Moq进行单元测试,我正在尝试编写我的第一个单元测试。我的层是“Controller=>Service=>Repository” (我使用的是unity和repository模式。) 每当我运行单元测试时,实际值总是Asp.net mvc 3 最小起订量单元试验,asp.net-mvc-3,moq,Asp.net Mvc 3,Moq,我正在使用Moq进行单元测试,我正在尝试编写我的第一个单元测试。我的层是“Controller=>Service=>Repository” (我使用的是unity和repository模式。) 每当我运行单元测试时,实际值总是0,就像\u service.getequipmstates().Count()=0。我不知道我哪里做错了。请建议 我的单元测试代码如下所示: private ITestService _service; private Mock<ITestRepository>
0
,就像\u service.getequipmstates().Count()=0
。我不知道我哪里做错了。请建议
我的单元测试代码如下所示:
private ITestService _service;
private Mock<ITestRepository> RepositoryMoc;
[TestInitialize]
public void Initialize() {
RepositoryMoc= new Mock<ITestRepository>();
_service = new TestService(RepositoryMoc.Object)
}
[TestMethod]
public void GetEquipmentState() {
var stateList = new[] { new State { ID = 1, Desc= "test" } };
RepositoryMoc.Setup(es => es.GetStates(true)).Returns(stateList );
Assert.AreEqual(1, _service.GetStates().Count());
}
私有ITestService\u服务;
私人模拟仓库;
[测试初始化]
public void Initialize(){
RepositoryMoc=新模拟();
_服务=新的测试服务(RepositoryMoc.Object)
}
[测试方法]
public void GetEquipmentState(){
var stateList=new[]{newstate{ID=1,Desc=“test”};
RepositoryMoc.Setup(es=>es.GetStates(true)).Returns(stateList);
AreEqual(1,_service.GetStates().Count());
}
您已使用prameter true完成methode GetState的设置
RepositoryMoc.Setup(es => es.GetStates(true)).Returns(stateList);
但是您在Assert语句中的调用是针对不带参数的方法GetState的。GetState方法是使用默认参数声明的,还是必须使用函数(一个带bool参数,一个不带bool参数)
只要像这样在assert语句中进行调用,它就会工作
Assert.AreEqual(1, _service.GetStates(true).Count());
我已经在我的一个解决方案中复制了您的代码,测试顺利通过
private Mock<IAccessor> RepositoryMoc;
private Controller _service;
[TestMethod]
public void TestMethod()
{
// Arrange
_service = new Controller();
RepositoryMoc = new Mock<IAccessor>();
_service.Accessor = RepositoryMoc.Object;
var stateList = new[] { new State { ID = 1, Desc = "test" } };
RepositoryMoc.Setup(es => es.GetStates(true)).Returns(stateList);
// Act & Assert
Assert.AreEqual(1, _service.GetStates().Count());
}
private Mock RepositoryMoc;
专用控制器服务;
[测试方法]
公共void TestMethod()
{
//安排
_服务=新控制器();
RepositoryMoc=新模拟();
_service.Accessor=RepositoryMoc.Object;
var stateList=new[]{newstate{ID=1,Desc=“test”};
RepositoryMoc.Setup(es=>es.GetStates(true)).Returns(stateList);
//行动与主张
AreEqual(1,_service.GetStates().Count());
}
代码是否与您的解决方案中的代码完全相同?请同时发布
TestService.GetStates()
的代码。