gpt4 book ai didi

c#-4.0 - 如何使用 FakeItEasy 从方法返回 Null 值

转载 作者:行者123 更新时间:2023-12-03 15:59:18 25 4
gpt4 key购买 nike

我有一个使用 FakeitEasy 伪造的服务,我正在尝试调用它的方法。这是代码

        var client = container.Resolve<MyService>();
A.CallTo(() => client.GetUserProfile(userName)).Returns(null);

GetUserProfile 方法在实际实现中返回一些对象。但出于某种原因,我希望此方法返回空值。我正在使用上面的代码来实现这个目的,但它返回的是 Fake 对象而不是 null。

这是我正在使用的测试设置
    [Test]
public void MyTest(string sitecollectionGuid, string customerName)
{
var mockHttpContext = SetupHttpContext(sitecollectionGuid, customerName);

var client = container.Resolve<MyService>();
A.CallTo(() => client.GetUserProfile(userName)).Returns(null);

var controllerContext = new ControllerContext(mockHttpContext, new RouteData(), A.Fake<ControllerBase>());
controller.ControllerContext = controllerContext;

var result = controller.CheckUsername(userName);
Assert.IsNotNull(result, "Result is not as expected");
}

制作方法如下
public UserDAO GetUserProfile(string userName)
{
UserDAO objUserProfile = new UserDAO();
IUsers objUsers = (IUsers)Global.Container["Users"];
IUser objUser = objUsers.GetByUserName(userName);
if (objUser == null)
{

return null;
}
else
{
objUserProfile = AutoMapper.Mapper.Map<IUser, UserDAO>(objUser);
objUserProfile.FirstName = objUser.FirstName;
objUserProfile.MiddleName = objUser.MiddleName;
objUserProfile.LastName = objUser.LastName;
....................
....................
<setting other properties>
....................
....................

return objUserProfile;
}
}

任何帮助将不胜感激

谢谢

最佳答案

尝试输入您的(空)引用。

UserDAO returnValue = null;    
var client = container.Resolve<MyService>();
A.CallTo(() => client.GetUserProfile(userName)).Returns(returnValue);

关于c#-4.0 - 如何使用 FakeItEasy 从方法返回 Null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25682790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com