C# 如何使用Moq创建回音模拟?

C# 如何使用Moq创建回音模拟?,c#,unit-testing,moq,C#,Unit Testing,Moq,我正在为我的ITransformer界面创建一个模拟 public interface ITransformer { String Transform( String input ); } 我可以创建一个基于特定输入返回给定字符串的模拟: var mock = new Mock<ITransformer>(); mock.Setup(s => s.Transform("foo")).Returns("bar"); 我想做的是创建一个带有Transform方法的moc

我正在为我的ITransformer界面创建一个模拟

public interface ITransformer
{
    String Transform( String input );
}
我可以创建一个基于特定输入返回给定字符串的模拟:

var mock = new Mock<ITransformer>();
mock.Setup(s => s.Transform("foo")).Returns("bar");
我想做的是创建一个带有Transform方法的mock,该方法会回显传递给它的任何内容。我该怎么做呢?有可能吗

我意识到我的问题可能颠覆了Moq和mock通常的工作方式,因为我没有指定一个固定的期望

我也知道我可以很容易地创建自己的类来实现这一点,但我希望找到一种通用的方法,可以在类似的情况下使用,而不必每次都定义一个新类

var mock = new Mock<ITransformer>();
m.Setup(i => i.Transform(It.IsAny<string>())).Returns<string>((string s) => { return s;});
这将回显提供给该方法的任何内容


这应该会回显提供给该方法的内容。

您的编辑没有意义-字符串是System的别名。StringYour edit没有意义-字符串是System的别名。StringYour edit没有意义-string是System的别名。StringYour.StringYour对此感到疑惑。IsAny,只是从来没有机会去查找它。IsAny,只是从来没有机会去查找它。
var mock = new Mock<ITransformer>();
mock.Setup(t => t.Transform(It.IsAny<string>())).Returns((String s) => s);