c# - 如何访问另一个程序集中的类以进行单元测试?

标签 c# unit-testing .net-assembly

我正在以 Visual-Studio 2008 的方式进行单元测试,我想知道什么是完成交叉汇编 class 访问以进行测试的最佳方式。

基本上,我在一个解决方案中有两个项目:

  1. 我的项目(C#)
  2. MyProjectTests(C# 测试项目)

MyProject 中的所有内容目前都具有默认可访问性,如果我没记错的话,这意味着所有内容实际上都是内部。我主要希望在 class 级别进行测试,但涉及一些 delegates

将来某个时候可能会有一个外部 API,但我已经完成了大约 20% 的功能(至少在纸面上),而且我对在这个未经测试的之上分层更多代码持怀疑态度核。因此,我想现在就完成一些测试,在应用程序完成到足以进行传统(读作:糟糕和/或惰性)功能测试之前,并且肯定在版本 n+1 外部 API 启动之前。

除了一个直接的答案,一个解决方案的例子将不胜感激。

最佳答案

您可以使用程序集级属性 InternalsVisibleToAttribute实现这一目标。

添加

[assembly:InternalsVisibleTo("MyProjectTests")]

到您的 MyProject 程序集中的 AssemblyInfo.cs。

关于c# - 如何访问另一个程序集中的类以进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211707/

相关文章:

c# - 为什么会生成警告 CS1607 "The version specified for the ' product version' is not in the normal 'major.minor.build.revision' format?

c# - 在 C# 中将 List<anonymous type> 传递到需要 List<T> 的方法中

c# - 如何从 C# 中的文本中提取连续的电子邮件地址

c# - 是否可以知道对象属性何时更改?

unit-testing - 一个人写项目的时候会做测试吗?

unit-testing - 如何为 PHPUnit 的预言对象提供属性?

c# - 在c#中打印xml节点列表

c# - 与数据库通信的单元测试类

c# - 如何将当前运行的程序集复制到 Windows 启动项

c# - VS从哪里获取旧的程序集引用元数据