4
任何人都可以告訴我如何使用模擬對象使用Moq框架返回數據列表,並將如此返回的數據列表分配給另一個列表<>變量。如何使用Moq返回數據或值列表?
任何人都可以告訴我如何使用模擬對象使用Moq框架返回數據列表,並將如此返回的數據列表分配給另一個列表<>變量。如何使用Moq返回數據或值列表?
public class SomeClass
{
public virtual List<int> GimmeSomeData()
{
throw new NotImplementedException();
}
}
[TestClass]
public class TestSomeClass
{
[TestMethod]
public void HowToMockAList()
{
var mock = new Mock<SomeClass>();
mock.Setup(m => m.GimmeSomeData()).Returns(() => new List<int> {1, 2, 3});
var resultList = mock.Object.GimmeSomeData();
CollectionAssert.AreEquivalent(new List<int>{1,2,3},resultList);
}
}
@Richard Banks給出了正確的答案。爲了完整起見,如果你想使用Moq v4 functional specifications和擺脫.Object的:
void Main()
{
var list = new List<int> { 1, 2, 3 };
ISomeInterface implementation =
Mock.Of<ISomeInterface>(si => si.GimmeSomeData() == list);
List<int> resultList = implementation.GimmeSomeData();
foreach (int i in resultList)
{
Console.WriteLine(i);
}
}
public interface ISomeInterface
{
List<int> GimmeSomeData();
}
我使用的是模擬對象調用這名單<>形式返回值的方法。 – Neerajan 2011-05-02 10:12:44
請添加一些示例代碼。 http://tinyurl.com/so-hints – jeroenh 2011-05-02 10:35:17