MOQ设置函数抛出异常不起作用

Gal*_*Ziv 6 c# unit-testing moq

我有以下功能签名:

T SomeMethod(Expression<Func<T, string>> param1, 
             , params Expression<Func<T, object>>[] items);
Run Code Online (Sandbox Code Playgroud)

我希望它在每次执行时抛出异常.

我尝试进行以下设置:

myMock.Setup(x => x.SomeMethod(Moq.It.IsAny<Expression<Func<SomeClass, string>>>()))
      .Throws(new Exception());
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当我到达这个方法时,它不会抛出异常(虽然对象是我的模拟).

我认为我的设置不正确.

我尝试了很多变化,现在我有点沮丧.

我会放更多的代码,但它是受限制的.我要上传的每件作品都应该改变,所以请原谅我的信息便宜.

希望它足够了,有些人可以帮助我.

ale*_*lex 11

看起来问题出在params参数中.尝试将其添加到设置中

myMock.Setup(x => x.SomeMethod(
         Moq.It.IsAny<Expression<Func<SomeClass, string>>>()),
         Moq.It.IsAny<Expression<Func<T, object>>[]>())
      ).Throws(new Exception());
Run Code Online (Sandbox Code Playgroud)