如何在Moq中为返回T类型的泛型函数设置函数



我有一个mock DB对象,其中的设置是一个泛型函数,在单元测试中第一次调用它时,它返回一种类型,但下次调用时,该类型将更改为另一种类型。

我最初尝试使用SetupSequence并创建返回类型对象,但当然,moq从未被调用,因为类型不匹配:

mockdbobj.SetupSequence(x => x.GetData<Object>())
.Returns(type1)
.Returns(type2)

在阅读了某人关于如何将设置作为构建器对象的帖子后,我意识到要实现这一点,我只需要为每种类型调用设置:

mockdbobj.Setup(x => x.GetData<SomeTypeOne>())
.Returns(type1);
mockdbobj.Setup(x => x.GetData<SomeTypeTwo>())
.Returns(type2);           

最新更新