.net - 单元测试无法访问另一个项目中的设置

标签 .net visual-studio unit-testing post-build-event settings.settings

在 Visual Studio 中,我有一个单元测试,它调用另一个项目中的类的方法 - 我们将其称为 MyClass.A()。

在 A() 内部,它访问 MyClass 项目属性中的设置。

当我在正常运行时使用 MyClass.A() 时,它从设置中获取正确的值。但是,当我从单元测试中执行此操作时,它返回 null。我是否需要在单元测试项目中进行构建后事件来复制设置?

这是在 MyClass.A() 中访问设置的方式:

string connectionString = global::DataAccess.Properties.Settings.Default.ConnectionString;

解决方案

所以这个问题与那堆腐烂的湿卫生纸有关,我喜欢称之为我的大脑。 MyClass 上有一个公共(public)属性,我需要使用连接字符串进行设置。 Set 访问器将值分配给适当的 Settings 属性。感谢大家的回复。

最佳答案

您实际上有 2 个选择,首先您可以将设置设为公开,而不是内部

其次,您可以添加 InternalsVisibleToAttribute到指定单元测试程序集的主程序集。

[assembly:InternalsVisibleTo("MyUnitTestLibrary")]

顺便说一句,您应该使用 ConnectionStringsSection 将连接字符串存储在 app.config 中。并使用ConfigurationManager阅读它。

关于.net - 单元测试无法访问另一个项目中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13587778/

相关文章:

c# - 如何在 .NET 上创建软件路由器?

c - Microsoft Excel C API 和 Visual Studio

javascript - 如何让 Visual Studio 2005 在脚本资源管理器中显示正在运行的 JavaScript 文件?

unit-testing - 单元测试概率

arrays - 单元测试不工作 - Ruby 使用测试单元

visual-studio - Visual Studio : Run all tests in a single project?

.net - 在 Silverlight 中,如何调用主调度线程上的操作?

c# - 在流中设置偏移量

c# - NEST Elasticsearch :FilterInputs术语和术语之间的区别?

visual-studio - Visual Studio 中的 MSpec 测试适配器可以运行行为吗?