c# – 遵循文档示例(但使用异步方法)时,NSubstitute模糊调用
所以我尝试从文档中复制一个关于异常抛出的示例,并将其添加到我的一个方法中:
.Returns( x => { throw new Exception(); }); 但是这会导致以下编译器错误:
我正在使用的方法是异步方法.我尝试先等待该方法,但返回一个不同的错误,说它
更新: 有办法避免这种情况吗?我正在使用NSubstitute 2.0.3 感谢您的任何帮助. 解决方法
您的问题中的编译器错误看起来像是在调用返回Task而不是Task< T>?这个样本适合我:
public interface ISample { Task DoStuff(string name); } [Test] public async Task SampleTest() { var sample = Substitute.For<ISample>(); sample.DoStuff("test").Returns(x => { throw new Exception("doh"); }); // ... } 当我有一个通用的任务< T>时,我倾向于得到那个错误,可以通过在.Returns()调用中指定返回类型来修复,如下所示: public interface IRepository { Task<int> FindId(string name); } [Test] public async Task SampleTest2() { var sample = Substitute.For<IRepository>(); sample.FindId("test").Returns<int>(x => { throw new Exception("doh"); }); // ... } 在上面的例子中,我通过使用.Returns< int>(…)删除了歧义,它将选择编译器错误中提到的第一个重载. 如果这没有帮助你可以发布被测试方法的签名吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |