C# 单元测试-无效操作异常
My单元测试返回一个错误,说明:C# 单元测试-无效操作异常,c#,asp.net,unit-testing,C#,Asp.net,Unit Testing,My单元测试返回一个错误,说明:System.InvalidOperationException:序列不包含匹配元素。 当我开始调试时,它会在点击var result=\u forgotPass.sendmail(…)后自动停止调试程序为什么它会引发此异常 我如何解决这个问题 错误:系统。无效操作异常:序列不包含匹配元素。 单元测试: [TestMethod] public void SendEmail() { //Arrange _getUrl.Setup(mock =>
System.InvalidOperationException:序列不包含匹配元素。
当我开始调试时,它会在点击var result=\u forgotPass.sendmail(…)后自动停止调试程序代码>为什么它会引发此异常
我如何解决这个问题
错误:系统。无效操作异常:序列不包含匹配元素。
单元测试:
[TestMethod]
public void SendEmail()
{
//Arrange
_getUrl.Setup(mock => mock.AddUrlLink(It.IsAny<string>())).Returns(new ApiResponse<Status, string>(Status.Success, "link"));
_emailMock.Setup(mock => mock.Send(It.IsAny<CarrierModel>())).Returns(new ApiResponse<bool, string>(false, ""));
//Act
var result = _forgotPass.SendEmail("myemail@gmail.com");
//Assert
Assert.AreEqual(Status.EmailFailed, result.Status);
Assert.IsNull(result.Body);
Assert.IsTrue(result.Messages.Any(m => m == "Email Failed"));
}
[TestMethod]
public void sendmail()
{
//安排
_Setup(mock=>mock.addurlink(It.IsAny()).Returns(新的ApiResponse(Status.Success,“link”));
_emailMock.Setup(mock=>mock.Send(It.IsAny())).Returns(新的ApiResponse(false)(“”));
//表演
var结果=_forgotPass.SendEmail(“myemail@gmail.com");
//断言
Assert.AreEqual(Status.EmailFailed,result.Status);
Assert.IsNull(result.Body);
Assert.IsTrue(result.Messages.Any(m=>m==“电子邮件失败”);
}
异常是否有堆栈跟踪?您指出的这行代码可能是您的代码,我假设在其中的某个地方抛出了此异常。在一个猜测中,这看起来像是在一个空的枚举表上调用Single
(),但仅用您给出的代码无法确定。在_forgotPass.sendmail中发生了什么?“Sequence不包含匹配的元素”表示您对包含0个元素的集合调用First()或Single()之类的内容。@Chris此异常没有堆栈跟踪。此错误看起来像ICollection错误,可能与您的Linq调用有关。您确定没有处于“发布”而不是“调试”模式吗?这可能解释了调试器显示错误的行。您能在SendEmail函数中发布代码吗?