gpt4 book ai didi

c# - 我可以覆盖我无法继承的类的属性吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:33 24 4
gpt4 key购买 nike

我想对读取电源信息的类进行单元测试。我有一个私有(private)的只读变量,我从 System.Windows.SystemInformation.PowerStatus 分配了一个值,我可以使用反射来改变这个没问题但是......

System.Windows.PowerStatus 没有公共(public)构造函数,不允许我从它继承来派生我可以在测试中使用的 testPowerStatus 类。

我希望能够覆盖 BatteryLifePercent 和 BatteryLifeRemaining 属性的 getter,这样我就可以测试当这些是特定值时是否会发生正确的行为。

无论如何我可以做到这一点吗?或者这是不可能的?

最佳答案

您实际上不需要测试将 System.Windows.SystemInformation.PowerStatus 中的值分配给私有(private)变量的例程,尝试提取您需要在单独的例程中测试的逻辑,例如具有数字的方法作为模拟相关信息的参数。

看看成员 PowerStatus公开,它们都是 int、float 或枚举,尝试将这些作为参数提供给您的单元,这样将更容易测试。

关于c# - 我可以覆盖我无法继承的类的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com