首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoFixture.Freeze IEnumarable of Mock

AutoFixture.Freeze IEnumarable of Mock
EN

Stack Overflow用户
提问于 2019-02-20 06:40:58
回答 1查看 347关注 0票数 1

对于使用.Verify().Setup()测试,我非常习惯使用AutoFixture.Freeze<Mock<IViolationChecker>>()来设置一个类

但是,在我正在处理的类中,使用IViolationChecker的枚举

代码语言:javascript
复制
private readonly IEnumerable<IViolationChecker> _violationCheckers;

如何使用AutoFixture.Freeze定义我的IViolationChecker列表?我用过

代码语言:javascript
复制
var violationCheckers = AutoFixture.Freeze<Mock<IEnumerable<IViolationChecker>>>();

但我不确定该如何编写.Verify().Setup()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 09:41:15

一种选择是冻结集合,并为每个项目使用Mock.Get来获取用于设置和验证的模拟。

代码语言:javascript
复制
//Arrange
var violationCheckers = AutoFixture.Freeze<IEnumerable<IViolationChecker>>();
var mocks = violationCheckers.Select(item => Mock.Get(item));
foreach (var mock in mocks) {
    mock.Setup(_ => _.SomethingHere()).Verifiable(); //setup mock as desired.
}

//...

//Act
//...exercise member under test

//Assert
foreach(var mock in mocks) {
    mock.Verify(_ => /* some predicate*/, Times.Once);
    //OR
    //mock.Verify();
}

//...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54776041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档