gpt4 book ai didi

c# - Autofixture.Automoq - 泛型使 bool 始终为真

转载 作者:太空狗 更新时间:2023-10-30 01:00:04 25 4
gpt4 key购买 nike

public interface IResult
{
bool Success { get; }
}

public interface IResult<T> : IResult
{

}

使用 AutoFixure 和 AutoMoq,我试图找到一种方法来制作 Success总是true ,不管是什么类型T是。使用 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();
}
}

关于c# - Autofixture.Automoq - 泛型使 bool 始终为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49879885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com