[英]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.