自动混合:如何在不使用泛型方法的情况下创建类型实例

时间:2016-12-23 04:08:01

标签: autofixture

Autofixture能够使用High bias favors grades, low bias favors classes. bias: 0.0 | {'Henry': 4.0, 'Laura': 4.0, 'Clara': 8.0, 'David': 12.0} bias: 0.1 | {'Henry': 4.0, 'Laura': 4.0, 'Clara': 8.0, 'David': 11.0} bias: 0.2 | {'Henry': 3.0, 'Laura': 3.0, 'Clara': 7.0, 'David': 10.0} bias: 0.3 | {'Henry': 2.0, 'Laura': 3.0, 'Clara': 7.0, 'David': 9.0} bias: 0.4 | {'Henry': 2.0, 'Laura': 3.0, 'Clara': 6.0, 'David': 8.0} bias: 0.5 | {'Henry': 2.0, 'Laura': 2.0, 'Clara': 6.0, 'David': 8.0} bias: 0.6 | {'Henry': 1.0, 'Laura': 2.0, 'Clara': 6.0, 'David': 7.0} bias: 0.7 | {'Henry': 0.0, 'Laura': 2.0, 'Clara': 5.0, 'David': 6.0} bias: 0.8 | {'Henry': -0.0, 'Laura': 2.0, 'Clara': 5.0, 'David': 5.0} bias: 0.9 | {'Henry': -0.0, 'Laura': 1.0, 'Clara': 4.0, 'David': 4.0} bias: 1.0 | {'Henry': -1.0, 'Laura': 1.0, 'Clara': 4.0, 'David': 3.0} 方法创建任何类型的实例。

但是我需要在运行时创建一个类型。默认情况下,非泛型Fixture.Create<T>()需要一个'种子',这不是我想要的。

如何在运行时创建给定类型的实例?

1 个答案:

答案 0 :(得分:2)

通过查看Autofixture源代码,我可以这样做:

var fixture = new Fixture();
Type type = ... // My runtime type
var instance = fixture.Create(type, new SpecimenContext(fixture));

不确定这是否是最佳方式,但似乎有效。