首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autofixture.Automoq -泛型使bool总是真实的

Autofixture.Automoq -泛型使bool总是真实的
EN

Stack Overflow用户
提问于 2018-04-17 13:47:27
回答 1查看 473关注 0票数 4
代码语言:javascript
复制
public interface IResult
{
    bool Success { get; } 
}

public interface IResult<T> : IResult
{

}

使用AutoFixure和AutoMoq,我试图找到一种方法来使Success始终是true,而不管T是什么类型。在IResult中注册一个假很容易,但这似乎不适用于IResult<T>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 14:52:27

使用假实现

代码语言:javascript
复制
public class FakeResult<T> : IResult<T> {
    public bool Success {
        get { return true; }
    }
}

以及添加TypeRelay自定义

代码语言:javascript
复制
 fixture.Customizations.Add(new TypeRelay(typeof(IResult<>), typeof(FakeResult<>)));

所有对IResult<>的调用都将使用具有SuccessFakeResult<>来返回true,而不管T的类型是什么。

测试模拟是否按预期工作的完整示例。

代码语言:javascript
复制
[TestClass]
public class AutoFixtureDefaultGeneric {
    [TestMethod]
    public void AutoFixture_Should_Create_Generic_With_Default() {
        // Arrange
        Fixture fixture = new Fixture();
        fixture.Customizations.Add(new TypeRelay(typeof(IResult<>), typeof(FakeResult<>)));

        //Act
        var result = fixture.Create<IResult<string>>();

        //Assert
        result.Success.Should().BeTrue();
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49879885

复制
相关文章

相似问题

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