gpt4 book ai didi

c# - 更改私有(private)字段状态的方法的单元测试

转载 作者:行者123 更新时间:2023-12-04 00:47:31 24 4
gpt4 key购买 nike

所以,我有以下问题(使用 C#):

我在一个类中有两个私有(private)字段,一个保存字段的原始状态,一个保存更新后的状态。

我现在想写一个基本上采用原始状态的方法,将其复制到更新后的状态并更改其部分内容。

到目前为止,我已经将其实现为一个 void 方法,该方法仅更改字段的状态(如果需要)。这些字段稍后将被另一种方法使用。

我认为我在实现方面不会遇到任何问题,但我正在尝试为此方法(使用 MSTest)编写单元测试,但看不出如何正确测试它。

我真正需要测试的是给定输入参数,字段的内容与其原始状态相比是否发生了变化。由于这两个字段都是私有(private)的,我既不能访问原始状态来为单元测试设置值,也不能访问这些字段以用于任何断言的任何比较。

最简单的方法是公开所有这些具有公共(public)属性的字段,但除了单元测试之外,我真的没有用到公共(public)属性。另一种方法是重写方法以返回更新后的状态,但这仍然无法帮助我将原始状态设置为测试所需的状态。

关于如何处理这个问题有什么想法或最佳做法吗?

最佳答案

使用 PrivateObject.GetField() 检索该字段的最终状态。 ( privateObject members )

与仅仅为了使其可测试而修改 API 相比,这是更好的途径。

关于c# - 更改私有(private)字段状态的方法的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909008/

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