在 AutoFixture 中生成一个长字符串
Generating a long string in AutoFixture
我想生成一个长度为 80 的随机字符串。
我在想 Fixture.Create<string>(length: 80);
或 Fixture.Create<string>(minimumLength: 60, maximumLenth: 100);
。两者都可以正常工作。
创建自定义项似乎 矫枉过正,但也许这是正确的方法。关于获取比默认字符串 更短 的字符串有很多问题,这可以通过子字符串实现,但我需要更长的字符串。
检查 this 个问题。
这表示 StringLength
属性可以帮助生成给定长度的字符串。
还有来自库维护者的 article。在这篇文章中他说像eqfixture.Build<MyObject>.With(x = x.MyString, 0, 100);
这样的方法出于设计考虑是不会实现的
因此,如果您不想使用该属性,则必须 运行 和 Customization
没有直接的方法来完成这个,。
我最接近的是使用 Fixture.CreateMany<string>(3).Join("")
。感谢 Mark Seemann 的提示。
我只想要一个超过 50 个字符的字符串,但不关心它是 100 还是 300。但是如果我想要一个精确的长度,我也可以调用 Fixture.CreateMany<string>(3).Join("").Substring(length)
试试这个:
string.Join(string.Empty,Fixture.CreateMany<char>(stringLength))
stringLength
是您希望生成的字符串的长度。
或
默认情况下 Fixture.Create<string>()
创建一个长度为 36 的字符串。
所以如果你想要一个长度超过 36 的字符串,这段代码将生成一个长度为 72 的字符串:
string.Join(string.Empty,Fixture.CreateMany<string>(2))
我想生成一个长度为 80 的随机字符串。
我在想 Fixture.Create<string>(length: 80);
或 Fixture.Create<string>(minimumLength: 60, maximumLenth: 100);
。两者都可以正常工作。
创建自定义项似乎 矫枉过正,但也许这是正确的方法。关于获取比默认字符串 更短 的字符串有很多问题,这可以通过子字符串实现,但我需要更长的字符串。
检查 this 个问题。
这表示 StringLength
属性可以帮助生成给定长度的字符串。
还有来自库维护者的 article。在这篇文章中他说像eqfixture.Build<MyObject>.With(x = x.MyString, 0, 100);
这样的方法出于设计考虑是不会实现的
因此,如果您不想使用该属性,则必须 运行 和 Customization
没有直接的方法来完成这个,
我最接近的是使用 Fixture.CreateMany<string>(3).Join("")
。感谢 Mark Seemann 的提示。
我只想要一个超过 50 个字符的字符串,但不关心它是 100 还是 300。但是如果我想要一个精确的长度,我也可以调用 Fixture.CreateMany<string>(3).Join("").Substring(length)
试试这个:
string.Join(string.Empty,Fixture.CreateMany<char>(stringLength))
stringLength
是您希望生成的字符串的长度。
或
默认情况下 Fixture.Create<string>()
创建一个长度为 36 的字符串。
所以如果你想要一个长度超过 36 的字符串,这段代码将生成一个长度为 72 的字符串:
string.Join(string.Empty,Fixture.CreateMany<string>(2))