Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在同一类型的多个模拟中共享相同的设置吗?_C#_Moq - Fatal编程技术网

C# 我可以在同一类型的多个模拟中共享相同的设置吗?

C# 我可以在同一类型的多个模拟中共享相同的设置吗?,c#,moq,C#,Moq,正如标题所说,我可以为一个模拟做一个设置,然后以某种方式在同一类型的多个对象之间传输它吗 假设我正在创建一个Mock()。我想创建多个这样的模拟对象,但是使用相同的设置(即,所有对象都应该有相同的期望,但是有几个实例)。对我来说,多次重复代码没有多大意义-我可以以某种方式共享ISetup吗?Moq本身并没有为此提供便利,好吧 但您可以轻松地将设置代码移动到扩展方法: public static void MySetup(this Mock<IProcessor> mock) {

正如标题所说,我可以为一个模拟做一个设置,然后以某种方式在同一类型的多个对象之间传输它吗


假设我正在创建一个
Mock()
。我想创建多个这样的模拟对象,但是使用相同的设置(即,所有对象都应该有相同的期望,但是有几个实例)。对我来说,多次重复代码没有多大意义-我可以以某种方式共享
ISetup
吗?

Moq本身并没有为此提供便利,好吧

但您可以轻松地将设置代码移动到扩展方法:

public static void MySetup(this Mock<IProcessor> mock)
{
    mock.<setup-whatever>
}
publicstaticvoidmysetup(这个模拟)
{
嘲弄
}
然后,在您需要的每个位置,您可以执行以下操作:

...
var mock = new Mock<IProcessor>();
mock.MySetup();
...
。。。
var mock=new mock();
mock.MySetup();
...

嗯,您可以始终使用
foreach
循环…您可能是指
mock.MySetup()
是的。更正了。谢谢。