微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nsubstitute 根据对象属性返回不同

如何解决Nsubstitute 根据对象属性返回不同

我有如下代码。 第一次调用 save(),我希望它抛出异常。 当 obj.field="ok" 时的第二次调用,我不希望它抛出异常。 我如何通过 Nsubstitute 实现这一目标?

Try { //Source codes
    workItem.save() //save() has void as return type
} catch (Exception e) {
    if (somecondition){
        workItem.field = "OK";
        workItem.save();
    }
}

// Unit Test
workItem.When(fake => fake.Save()).Do(call => { throw new AggregateException(); });

// How do I make the second call to workItem.save() not throw any exception??

解决方法

我刚刚发现解决方案超级简单

workItem
          .When(x => x.Save())
          .Do(obj => { if (workItem.Field.Equals("Ok")) throw new AggregateException(new Exception("Assigned")); });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。