Net Core:在 Moq 语句中声明并初始化新的 Enumerable
Net Core: Declare and Initialize new Enumerable in Moq statement
我试图在 Moq 语句中声明并初始化一个空的 IEnumerable。出于某种原因,我尝试将 ProductResult 声明为 Enumerable 的最后一部分失败了。我可以在最小起订量声明中执行此操作吗?
mock.Setup(b => b.GetProductStatus(It.IsAny<bool>())).Returns(new List<ProductResult>().AsEnumerable() { });
正在尝试研究这篇文章:
IEnumerable<object> a = new IEnumerable<object>(); Can I do this?
根据这些有限的信息,我只能胡乱猜测。
你能删除 .AsEnumerable() { }
看看吗?
- {} 很奇怪,它不是正确的 C# 代码。
- List 实现了 IEnumerable,因此您不需要 .AsEnumerable()
你的最小起订量应该是这样的。无需执行 AsEnumerable,因为 List 是 IEnumerable 的实现。
mock.Setup(x => x.GetProductStatus(It.IsAny<bool>()))
.Returns(new List<ProductResult>());
我认为你的方法是这样的:
IEnumerable<ProductResult> GetProductStatus(bool someValue);
使用列表,您可以执行计数、Linq Any 等操作。
有关更多信息,快速入门是一个很好的参考。 Link 这里:
https://code.google.com/archive/p/moq/wikis/QuickStart.wiki
如果您只需要return清空IEnumerable
,您可以使用Enumerable.Empty。如果你需要非空集合,那么你可以 return any,因为它们都实现了 IEnumerable
.
.Returns(Enumerable.Empty<ProductResult>())
.Returns(new[] {1, 2, 3})
我试图在 Moq 语句中声明并初始化一个空的 IEnumerable。出于某种原因,我尝试将 ProductResult 声明为 Enumerable 的最后一部分失败了。我可以在最小起订量声明中执行此操作吗?
mock.Setup(b => b.GetProductStatus(It.IsAny<bool>())).Returns(new List<ProductResult>().AsEnumerable() { });
正在尝试研究这篇文章:
IEnumerable<object> a = new IEnumerable<object>(); Can I do this?
根据这些有限的信息,我只能胡乱猜测。
你能删除 .AsEnumerable() { }
看看吗?
- {} 很奇怪,它不是正确的 C# 代码。
- List 实现了 IEnumerable,因此您不需要 .AsEnumerable()
你的最小起订量应该是这样的。无需执行 AsEnumerable,因为 List 是 IEnumerable 的实现。
mock.Setup(x => x.GetProductStatus(It.IsAny<bool>()))
.Returns(new List<ProductResult>());
我认为你的方法是这样的:
IEnumerable<ProductResult> GetProductStatus(bool someValue);
使用列表,您可以执行计数、Linq Any 等操作。
有关更多信息,快速入门是一个很好的参考。 Link 这里: https://code.google.com/archive/p/moq/wikis/QuickStart.wiki
如果您只需要return清空IEnumerable
,您可以使用Enumerable.Empty。如果你需要非空集合,那么你可以 return any,因为它们都实现了 IEnumerable
.
.Returns(Enumerable.Empty<ProductResult>())
.Returns(new[] {1, 2, 3})