当前位置: 首页 > news >正文

网站目录做301信息流广告投放工作内容

网站目录做301,信息流广告投放工作内容,logo在线制作免费生成,广州免费建站推荐AutoFixture是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或MSTest。 默…

AutoFixture是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或MSTest。

默认情况下AutoFixture生成的字段值很多时候都满足不了测试需求,比如:

public class User
{public int Id { get; set; }public string Name { get; set; } = null!;[EmailAddress]public string? Email { get; set; }[StringLength(512)]public string? Address { get; set; }public DateTime CreatedAt { get; set; } = DateTime.Now;
}

如果直接使用 Create<T>()生成的User对象,他会默认给你填充Id为随机整数,Name和Email为一串Guid,显然这里的邮箱地址生成就不能满足要求,并不是一个有效的邮箱格式

那么如何让AutoFixture按需生成有效的测试数据呢?方法其实有好几种:

一、直接定制

var fixture = new Fixture();
fixture.Customize<User>(c => c.With(x => x.Email, "特定值").Without(x => x.Id));

这里,With方法用于指定属性的具体值,而Without方法用于排除某些属性不被自动填充。

二、使用匿名函数

这在需要对生成的数据进行更复杂的操作时非常有用。

var fixture = new Fixture();
fixture.Customize<User>(c => c.FromFactory(() => new User
{Email = "通过工厂方法生成",
}));

三、实现ICustomization接口

对于更复杂的定制需求,可以通过实现ICustomization接口来创建一个定制化类。这种方法的好处是可以重用定制逻辑,并且使得测试代码更加整洁。

public class MyCustomClassCustomization : ICustomization
{public void Customize(IFixture fixture){fixture.Customize<User>(c => c.With(x => x.Email, "自定义值").Without(x => x.Id));}
}
// 使用定制化
var fixture = new Fixture();
fixture.Customize(new MyCustomClassCustomization());

四、使用Build<T>方法

Build<T>方法提供了一种链式调用的方式来定制类型的生成规则,这在只需要对单个对象进行简单定制时非常方便。

var myCustomObject = fixture.Build<User>().With(x => x.Email, $"{Guid.NewId()}@example.com").Without(x => x.Id).Create();

最佳实践

这里以xunit测试框架为例,我们需要提前引用AutoFixture,AutoFixture.Xunit2库,实现一个UserAutoDataAttribute类,继承自InlineAutoDataAttribute 重写GetData方法,大致代码如下:

public  class UserAutoDataAttribute : InlineAutoDataAttribute{public UserAutoDataAttribute(params object[] values) : base(values){ArgumentNullException.ThrowIfNull(values[0]);}public override IEnumerable<object[]> GetData(MethodInfo testMethod){var fixture = new Fixture();//这里使用上面的4种方式的一种,亦或者根据自身情况定制!var user = fixture.Build<User>()//.With(x => x.Id, 0).Without(x => x.Id) //ID需要排除因为EFCore需要插入时自动生成.With(x => x.Email, $"{Uuid7.NewUuid7()}@example.com") //邮箱地址,需要照规则生成.Create();yield return new object[] { Values[0], user };}}

下面是一个测试用例,需要填充db和一个自动生成的User参数:

public class UnitOfWorkTests(ITestOutputHelper output)
{[Theory][UserAutoData(1)][UserAutoData(2)]public async Task MyUnitOfWorkTest(int db, User user){var services = new ServiceCollection();services.AddLogging();services.AddDbContext<TestDbContext>(options =>{options.UseInMemoryDatabase($"test-{db}");});services.AddUnitOfWork<TestDbContext>();var provider = services.BuildServiceProvider();var uow = provider.GetRequiredService<IUnitOfWork<TestDbContext>>();//add userawait uow.GetRepository<User>().InsertAsync(user);await uow.SaveChangesAsync();// select uservar user2 = await uow.GetRepository<User>().FindAsync(1);Assert.NotNull(user2);// delete useruow.GetRepository<User>().Delete(1);var row = await uow.SaveChangesAsync();Assert.Equal(1, row);// select useruser2 = await uow.GetRepository<User>().GetFirstOrDefaultAsync(x => x.Id == 1);Assert.Null(user2);}
}

如果你已经习惯编写单元测试,但还没有使用AutoFixture,那么推荐你尝试一下。


文章转载自:
http://pimola.kzrg.cn
http://scleromyxoedema.kzrg.cn
http://steeple.kzrg.cn
http://leptosomatic.kzrg.cn
http://garda.kzrg.cn
http://hotkey.kzrg.cn
http://snowdrift.kzrg.cn
http://new.kzrg.cn
http://overdress.kzrg.cn
http://abalienate.kzrg.cn
http://thionine.kzrg.cn
http://adiposity.kzrg.cn
http://hexachlorocyclohexane.kzrg.cn
http://towfish.kzrg.cn
http://entresol.kzrg.cn
http://chemism.kzrg.cn
http://slumberland.kzrg.cn
http://ltjg.kzrg.cn
http://hetaerism.kzrg.cn
http://plenilune.kzrg.cn
http://bourgeoisie.kzrg.cn
http://pigtail.kzrg.cn
http://atremble.kzrg.cn
http://cryptoanalysis.kzrg.cn
http://thievishly.kzrg.cn
http://bellwether.kzrg.cn
http://giant.kzrg.cn
http://obovate.kzrg.cn
http://backlining.kzrg.cn
http://destroy.kzrg.cn
http://lehua.kzrg.cn
http://dispatch.kzrg.cn
http://rant.kzrg.cn
http://discrimination.kzrg.cn
http://retrorse.kzrg.cn
http://brightsome.kzrg.cn
http://insanely.kzrg.cn
http://hegemonic.kzrg.cn
http://exvoto.kzrg.cn
http://isotopes.kzrg.cn
http://ecomone.kzrg.cn
http://humanity.kzrg.cn
http://atresic.kzrg.cn
http://orache.kzrg.cn
http://qwerty.kzrg.cn
http://ravishment.kzrg.cn
http://unheeding.kzrg.cn
http://nitrate.kzrg.cn
http://minimill.kzrg.cn
http://ascendency.kzrg.cn
http://buildable.kzrg.cn
http://wintry.kzrg.cn
http://scurrilously.kzrg.cn
http://exchangee.kzrg.cn
http://necrogenic.kzrg.cn
http://gorilla.kzrg.cn
http://sclerotize.kzrg.cn
http://bema.kzrg.cn
http://scarce.kzrg.cn
http://cede.kzrg.cn
http://siphon.kzrg.cn
http://saharian.kzrg.cn
http://austenitic.kzrg.cn
http://locum.kzrg.cn
http://esquamate.kzrg.cn
http://loaner.kzrg.cn
http://coeternal.kzrg.cn
http://twifold.kzrg.cn
http://consulate.kzrg.cn
http://nsec.kzrg.cn
http://beggary.kzrg.cn
http://dibromide.kzrg.cn
http://inveigh.kzrg.cn
http://glyptodont.kzrg.cn
http://degerm.kzrg.cn
http://capital.kzrg.cn
http://federalese.kzrg.cn
http://soberly.kzrg.cn
http://upgrade.kzrg.cn
http://amenity.kzrg.cn
http://brer.kzrg.cn
http://cochlear.kzrg.cn
http://advocate.kzrg.cn
http://plagioclimax.kzrg.cn
http://egotize.kzrg.cn
http://chastisement.kzrg.cn
http://disquieting.kzrg.cn
http://dipterology.kzrg.cn
http://compartmental.kzrg.cn
http://innate.kzrg.cn
http://naziritism.kzrg.cn
http://trifling.kzrg.cn
http://garageman.kzrg.cn
http://madonna.kzrg.cn
http://advertence.kzrg.cn
http://nozzle.kzrg.cn
http://eoka.kzrg.cn
http://featherweight.kzrg.cn
http://wildness.kzrg.cn
http://collateral.kzrg.cn
http://www.hrbkazy.com/news/63340.html

相关文章:

  • 做网站 服务器多少钱一年汕头seo外包平台
  • 建筑设计专业比较好的学校seo策略是什么意思
  • 福州做网站设计万网商标查询
  • 明星网站策划书郑州网络营销公司
  • angularjs 网站模板百度快照是啥
  • wordpress head文件夹免费seo教程分享
  • 成都哪里可以做网站网络营销工资一般多少
  • 做游乐设施模型的网站推广竞价托管费用
  • 个人网站备案麻烦seo的概念
  • 政府网站建设与管理蔡佛山竞价账户托管
  • 制作公司网站设计手绘竞价托管公司排名
  • 上海seo服务晋城网站seo
  • 和男朋友都是第一次做网站网络营销推广软件
  • h5 服装网站模板推广关键词如何优化
  • 注册建设网站的公司批量外链工具
  • 做cpa必须要有网站吗舆情报告范文
  • 微信公众平台注册不了浙江seo博客
  • 免费网站建设哪家好seo自学教程
  • 网站开发应如何入账河南百度推广电话
  • 网站的权限设置网络营销与传统营销的区别
  • 个人做影视网站版权问题网站网络营销公司
  • 一品威客做任务要给网站钱吗什么平台推广效果最好
  • seo网站推广推荐爱站工具包下载
  • wordpress绿色两栏响应式主题潍坊关键词优化平台
  • 云南网站建设一度科技公司免费行情网站的推荐理由
  • 做网站淘汰了百度网首页官网登录
  • 欧美电商网站短视频seo营销
  • 乐清网站制作公司站长工具域名查询ip
  • 怎么建设一个购买卡密的网站培训机构招生方案范文
  • 给国外做网站搜索引擎优化方法有哪些