簡體   English   中英

Autofixture.Automoq - 泛型使bool始終如一

[英]Autofixture.Automoq - generics make bool always true

public interface IResult
{
    bool Success { get; } 
}

public interface IResult<T> : IResult
{

}

使用AutoFixure和AutoMoq無論T是什么類型,我都試圖找到使Success始終為true方法。 使用IResult注冊假是很容易的,但這似乎不適用於IResult<T>

使用假實現

public class FakeResult<T> : IResult<T> {
    public bool Success {
        get { return true; }
    }
}

以及添加TypeRelay自定義

 fixture.Customizations.Add(new TypeRelay(typeof(IResult<>), typeof(FakeResult<>)));

對所有呼叫IResult<>將使用FakeResult<>有其Success返回true ,不管是什么類型T

測試模擬按預期工作的完整示例。

[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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM