这个错误通常是由于在使用ReturnsAsync
方法时,没有添加Moq库的引用而导致的。解决方案是在项目中添加Moq库的引用。例:
using Moq;
using System.Threading.Tasks;
using Xunit;
public interface IFoo
{
Task GetId(string name);
}
[Fact]
public async Task Test()
{
var mockFoo = new Mock();
mockFoo.Setup(x => x.GetId("test")).ReturnsAsync(42); // 这里会引发错误
int result = await mockFoo.Object.GetId("test");
Assert.Equal(42, result);
}
此时会出现'未包含名为'ReturnsAsync'的定义,并且最好的扩展方法重载是'返回类型'中的哪个呢?”的编译错误。可以通过添加Moq库的引用来解决这个问题。在项目的csproj文件中添加以下内容即可: