c# - AutoFixture 单元测试参数设置

标签 c# unit-testing autofixture

如何为以下单元测试设置 AutoFixture:

[Theory, ... ] // <- what goes here? 
public void MyTest(int param1, string param2)
{
  ...
}

第一个参数可以采用随机生成的整数,因此 AutoFixture 自然适合。 第二个不能以同样的方式。我需要第二个从编译时未知的动态生成的值列表中获取值。我需要将其告知 AutoFixture,但我不知道如何告知。

编辑:

在我的具体场景中,我需要的是字符串参数是某种类型的属性名称。我想对 AutoFixtue 说:“嘿,对于 param2,从这个列表中取出一个随机字符串,其中列表是 myType.GetPropertyNames()。

AutoFixture 是否支持这种场景?

最佳答案

如果您需要随机值,只需使用[AutoData]:

[Theory, AutoData]
public void MyTest(int param1, string param2)
{
  ...
}

如果您需要一些预定义的测试数据,您可以使用 [InlineAutoData] .在下面的示例中,string 参数 param1 将获取属性中指定的值。 int 参数 param2 总是随机的:

[Theory]
[InlineAutoData("predefined_string_1")]
[InlineAutoData("predefined_string_2")]
public void MyTest(string param1, int param2)
{
  ...
}

关于c# - AutoFixture 单元测试参数设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019941/

相关文章:

ios - 将 CocoaPods 与 iOS 逻辑测试一起使用时找不到库

refactoring - Autofixture 生成自定义列表

c# - ASP.NET 身份 2.0 : How to rehash password

c# - Select 不适用于 IQueryable 但适用于 IList

ruby-on-rails - 在不删除测试数据库的情况下运行 Rails 测试

amazon-web-services - 是否可以在不更改参数的情况下对使用 AWS SDK 的 Go 函数进行单元测试?

c# - 如何仅对列表中的一部分项目分配属性?

autofixture - 注册。使用 AutoFixture 对 Html Helper 进行单元测试

c# - 无法从 cmd.exe 执行中获取输出

c# - Web API 路由被忽略