我正在为ITransformer
界面创建一个模拟器。
public interface ITransformer
{
String Transform( String input );
}
我可以创建一个模拟器,它根据特定的输入返回给定的字符串:
var mock = new Mock<ITransformer>();
mock.Setup(s => s.Transform("foo")).Returns("bar");
我想要做的是创建一个带有Transform()
方法的模拟,它回应传递给它的任何内容。我该怎么做呢?它甚至可能吗?
我意识到我的问题可能会破坏Moq和模拟一般应该工作的方式,因为我没有指定固定的期望。
我也知道我可以轻松创建自己的类来完成这项工作,但我希望找到一种可以在类似情况下使用的通用方法,而不必每次都定义一个新类。
答案 0 :(得分:4)
var mock = new Mock<ITransformer>();
m.Setup(i => i.Transform(It.IsAny<string>())).Returns<string>((string s) => { return s;});
答案 1 :(得分:2)
var mock = new Mock<ITransformer>();
mock.Setup(t => t.Transform(It.IsAny<string>())).Returns((String s) => s);
这应该回显提供给方法的任何内容。