我開始以Phil Haack建議的方式組織我的單元測試here。我的測試類每個公共方法都有一個嵌套類。嵌套類是從外部類派生的,以便繼承它的設置代碼。如何構建單元測試當你想測試派生類與基類的交互作用
我現在有一種情況,我想測試一個抽象基類和兩個派生類的簡單層次結構。我想顯式測試每個派生類與基類的交互,而不是用某種模擬派生類來測試基類。
我使用基本測試夾具,每個派生類中派生一個夾具,在過去做到了這一點,其中衍生的燈具必須實現在基部固定裝置測試了幾個模板方法:
[TestFixture]
public abstract class BaseFixture
{
protected abstract MyBaseClassUnderTest GetTestInstance();
[Test]
public void SomeMethod_SomeCondition_SomeOutcome()
{
var sut = GetTestInstance();
//test base class behavior here
}
//More base class tests here
}
public class DerivedFixture : BaseFixture
{
protected override MyBaseClassUnderTest GetTestInstance()
{
return new DerivedInstance();
}
//Tests for derived class go here
}
有沒有人有想法,我該如何解決這個問題?現在我看不到,由於不同的繼承策略(從外部類繼承設置代碼與從基類設備繼承基類測試),我怎麼能夠結合這兩種方法。
這是一個有趣的想法,但是您能否想到一個NUnit測試夾具的實際示例,測試運行器實際上可以運行該示例嗎?我不能。 – EagleBeak