我正在使用 MSTest 在 C# (Visual Studio 2012) 中做一些 TDD。我有一个用[TestClass]
属性声明的类。我的测试类继承自我要测试的类。
父类有一个无参数的构造函数,但我得到一个构建错误
'RatingsClass.OutputLine' does not contain a constructor that takes 0 arguments
这是我的基类及其无参数构造函数:
namespace RatingsClasses
{
public class OutputLine
{
public OutputLine()
{
Initialise("Parameterless constructor called");
}
(and so on)
这是从基类继承的测试类。这会导致以下构建错误:
'RatingsClass.OutputLine' does not contain a constructor that takes 0 arguments
代码:
using RatingsClasses;
namespace RatingsKataV2
{
[TestClass]
public class RatingsTests: OutputLine
{
[TestMethod]
public void TestSingleTripRatingIs20()
{
(and so on)
此外,当我尝试直接从派生类的构造函数调用基类的无参数构造函数时,我会得到很多红色波浪线和语法错误,例如Constructor must have body
和Unexpected token
。
这是我尝试显式调用基本构造函数:
using RatingsClasses;
namespace RatingsKataV2
{
[TestClass]
public class RatingsTests: OutputLine
{
public RatingsTests(): OutputLine()
{
}
(the rest of the class goes here)
我究竟做错了什么?
我这样做的原因是我想测试我的基类的各种私有成员是否被正确填充。与其提供 getter 和 setter 或将这些成员公开,我的测试类只是从它正在测试的类继承似乎是有意义的,这样它就可以直接访问这些私有成员。有没有更好的方法来做到这一点?