【发布时间】:2012-05-18 06:17:24
【问题描述】:
一直在尝试使用 moq 进行单元测试。
这是一个类结构。
public interface IParameter<T> : IList<T>
{
}
public interface IParameters
{
IParameter<string> Types;
}
public class MyClass
{
public DataTable GetResult(IParameters parameters)
{
//do work here
return dt;
}
}
class TestMyClass
{
[Test]
public void TestGetResult()
{
var _mock = new Mock<IParameters>();
_mock.SetUp(x => x.Types).Return(new [] {"1", "2"}); //Issue
var m = new MyClass()
var result = m.GetResult(_mock.Object)
Assert.IsNotNull(result);
}
}
我需要学习如何正确调用 _mock.SetUp,以便 IParameters 中的属性返回 IList 类型。
另外,我也试过这个...
var mock = new Mock<IParameters>();
var mockparams = new Mock<IParameter<string>>();
mockparams.SetReturnsDefault( ); //What should i call to add { "1", "2", "3" }
mock.Setup(x => x.ReportTypes).Returns(mockparams.Object);
那么在 mockparams 中我应该调用什么函数来设置返回值?
【问题讨论】:
-
返回一个列表类型,而不是数组。新列表
{"1","2"} -
这只是一个伪代码,假设。但它应该返回类型 IParameter
而不仅仅是 List -
您如何处理
GetResult方法中的IParameters? -
好的,IParameters 的实现时间在哪里?你迟早要这样做
-
那应该是无关紧要的。但它是查询内容的参数。
标签: c# unit-testing mocking moq