此要求来自测试Angular .我对IOptions
模式很满意,因为它应该只从配置中加载它所拥有的内容,然后您可以使用验证来确保Options对象具有它所需要的东西.然而,当使用上述选项测试其他部件时,这就成了一个问题,因为您可以只使用所需的少量内容来更新该选项对象.
在我的例子中,我的Options对象如下:
public sealed record SomeOptions
{
public string Name { get; set; }
public string Description { get;, set; }
public Uri Location { get; set; }
}
我希望确保每当在测试中创建SomeOptions
时,名称和位置都是强制性的,以反映正常情况下验证将涵盖的内容.使用SomeOptions
的无效实例进行测试看起来像是会回来咬我一口.
通常,我会通过构造函数鼓励这样做,但当它try 构建配置时,由于需要无参数构造函数,这会抛出InvalidOperationException异常.这里最好的方法是什么?我目前在一个无参数的构造函数中插入了一个XML注释,声明"不要使用",但这似乎远远不够.