我正在使用rhino mocks在mstest中创建一个单元测试。我有一个继承类B的类A.我正在测试类A并为我的测试创建一个实例。它继承的类“B”具有一些受保护的方法和受保护的属性,我希望为我的测试带来好处。例如,验证我的基类中的受保护属性具有期望值。单元测试期间如何访问基类的受保护成员?
任何想法如何在我的测试过程中访问这些受保护的B类属性?
我正在使用rhino mocks在mstest中创建一个单元测试。我有一个继承类B的类A.我正在测试类A并为我的测试创建一个实例。它继承的类“B”具有一些受保护的方法和受保护的属性,我希望为我的测试带来好处。例如,验证我的基类中的受保护属性具有期望值。单元测试期间如何访问基类的受保护成员?
任何想法如何在我的测试过程中访问这些受保护的B类属性?
您受保护的属性应该会影响您班级公共行为的某些方面。
测试此公共行为。
就您的测试而言,班级的内部工作应该是黑匣子。这将给你重构的自由,而不必惹你的测试。唯一重要的是他们公开的东西是什么,这是应该测试的。
除此之外其他的答案将指向正确的方向,如果你真的需要测试像你描述的那样,这样做:
创建一个类种皮从A.使用继承本作B的受保护性质公开进行测试。如果您有
class B {
protected string Name {get; set;}
}
class A: B {
public void DoSomething(string msg) {
Name = msg.Trim();
}
}
class TestA: A {
public string GetName() {
return Name;
}
}
在您的测试中,现在使用TestA。我不知道MsTest的语法,但大致是这样的:
[Test]
public void TestThatNameWasSet() {
TestA systemUnderTest = new TestA();
systemUnderTest.DoSomething(" new name ");
Assert.That(systemUnderTest.GetName(), Is.EqualTo("new name");
}
如果您需要更多关于如何单元测试特定场景的详细信息 - 请分享您正在测试的代码 – sll