我正在为DotNet 4.0中的fitnesse编写一些fixture代码,并希望保护我的api方法不被用在代码库中。我认为这可以使用[Obsolete]属性完成,但是如果在另一个标记为过时的方法中使用过时的方法,则不会生成编译错误。
[Obsolete("Used only externally", true)]
public void Method1() {
}
[Obsolete("Used only externally", true)]
public void Method2() {
Method1();
}
我希望上面的代码生成编译错误。还有其他方法可以解决这个问题吗?最好是在DotNet框架内部吗?
答案 0 :(得分:1)
您不应该将灯具代码放入要测试的装配体中。相反,您应该为灯具代码创建一个单独的项目。 fixture代码应该使用与程序集的其他客户端相同的公共API来访问“被测系统”。
您在FitNesse中编写的测试只能访问夹具组件。
+----------------+ +-----------------+ +-------------------+
| FitNesse Tests | -> | Fixture Assembly| -> | System under test |
+----------------+ +-----------------+ +-------------------+
^
+----------------+ |
| Other Clients | ---------+
+----------------+
答案 1 :(得分:0)
您还没有给出用例的真实示例,但如果您想保护API方法不被其他程序集调用,为什么不使用internal
访问修饰符?