首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字范围的AutoFixture

数字范围的AutoFixture
EN

Stack Overflow用户
提问于 2016-11-25 19:08:58
回答 2查看 10.3K关注 0票数 8

有什么简单的方法可以用AutoFixture做到这一点吗?

代码语言:javascript
复制
var myInt = fixture.Create<int>(min, max);

我想知道这在AutoFixture中是否可行,或者我是否必须实例化一个随机对象并自己做这项工作。

如果这是不可能的,有一个很好的理由没有这个功能,我在这里错过了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-25 21:13:00

有的,有:

代码语言:javascript
复制
// Install-Package AutoFixture.Xunit - or -
// Install-Package AutoFixture.Xunit2

using System;
using System.ComponentModel.DataAnnotations;
using Xunit;

[Theory, AutoData]
public void ActualIsInTestRange([Range(99, 111)]int actual)
{
    Assert.InRange(actual, 99, 111);
}
票数 8
EN

Stack Overflow用户

发布于 2019-07-19 07:56:21

作为一个一次性的人,你可以这么做:

代码语言:javascript
复制
var value = fixture.Create<int>() % (max - min + 1) + min;

作为一种更可重用的方法,您可以编写如下扩展方法:

代码语言:javascript
复制
public static class FixtureExtensions
{
    public static int CreateInt(this IFixture fixture, int min, int max)
    {
        return fixture.Create<int>() % (max - min + 1) + min;
    }
}

然后可以如下所用:

代码语言:javascript
复制
var value = fixture.CreateInt(min, max);
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40811099

复制
相关文章

相似问题

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