我正在开发这个WebAPI项目,需要为其创建单元测试。该项目的基础是使用VS 2010创建的,然后添加了WebApi模块。
控制器的运作方式有点妨碍测试/模拟。我正在使用xUnit和Moq,但绝对没有必要坚持使用这两个。
应用程序使用特定对象来处理数据库访问,所以我有controllerObject,其构造函数需要DataAccessObject。
我在模拟controller/dataaccess pair时遇到了问题。第一个我尝试运行的测试是GetAllFromDataBase,但我真的不知道该怎么做。
编辑:
我按照Cuong Le告诉我的做法,整个流程现在都在进行中,我非常感激。但我遇到了另一个问题。要访问API,需要用户名/密码对,我的控制器使用Thread.CurrentPrincipal.Identity.Name;目前我需要设置这个值才能完全使其工作吧。
此外,valueServiceMock.Setup(service => service.GetValues()) .Returns(new[] { "value1", "value2" });
似乎并不起作用。因为代码试图访问数据库,但由于无法获得有效的用户名而得不到任何内容。