我正在使用 NSubstitute 來模擬我的一個類/接口。我的類實現的函數之一應該返回一個 List 類型的對象。但是當我嘗試使用 _mockedObject.MyFunction().Returns(myList) 時,它給我一個錯誤,說我無法在 List 和 Func 類型的對象之間進行轉換。我想我可以使用一些 ToString() 函數將我的列表作為字符串傳遞并將其轉換回來?但這似乎不是特別干凈,因為我期望從我的函數中返回一個列表。我從有關使用依賴注入進行單元測試的視頻中看到,您可以使用 Moq 從模擬對象返回對象,如果我無法使用 NSubstitute 返回對象,我正在考慮切換到該方法。
1 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
List<string>下面是如何從 NSubstitute 模擬的對象返回 a 的示例:
using System.Collections.Generic;
using NSubstitute;
using Xunit;
public interface ISomeType {
? ? List<string> MyFunction();
}
public class SampleFixture {
? ? [Fact]
? ? public void ReturnList() {
? ? ? ? var _mockedObject = Substitute.For<ISomeType>();
? ? ? ? var myList = new List<string> { "hello", "world" };
? ? ? ? _mockedObject.MyFunction().Returns(myList);
? ? ? ? // Checking MyFunction() now stubbed correctly:
? ? ? ? Assert.Equal(new List<string> { "hello", "world" }, _mockedObject.MyFunction());
? ? }
}
您所描述的錯誤聽起來像是涉及不同類型。
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消