关于this question我刚才问,我再一次被我的单元测试困住了。我应该访问单元测试的受保护方法吗?
我目前的问题是关于测试我的抽象Component
类的protected
方法。
我已经成功实现了一个名为ConcreteComponent
的模拟类,它很好地继承了抽象类的所有工作。
事情是,我做我的单元测试文件,这里面具体的类。测试受保护方法的唯一方法是拥有一个专用访问器。但是,我不能在单元测试所在的同一文件中创建一个专用访问器,因此无法访问受保护的方法。
我试图将模拟具体类放在一个单独的文件中,在不同的名称空间下,现在允许我创建一个单元测试文件现在可以使用的专用访问器。它很好地工作,但后来我觉得我需要这个模拟具体类在单元测试的同一个文件中。
所以现在我有两个问题:
1)什么是这个问题的可能的解决方法?
2)为什么我不能为模拟类创建一个私有访问器,它与单元测试类在同一个文件和名称空间内?
“为什么你不能”是一个很好的问题。你为什么不能?究竟发生了什么或阻止了你? – JRoughan 2013-03-04 11:46:31
以及VS2008不会允许我,无论出于何种原因。当类与单元测试位于同一个文件中时,当我右键单击模拟类的名称时,没有选项可以创建一个专用访问器。但是当我把模拟类放在一个单独的文件中时,就会出现创建一个专用访问器的选项。 – Anthony 2013-03-04 11:48:54
啊,所以它的IDE不让你。没有意识到你正在使用MSTEST和自动生成访问器。在这种情况下,我会遵循下面的Saurabh的建议,并相信/确保公共接口正在执行受保护的代码,或者如果不是,那么为什么它会损坏? – JRoughan 2013-03-04 11:56:46