簡體   English   中英

使用nunit,xunit或Visual Studio測試拆分測試定義和測試實現

[英]split test definition and test implementation with nunit, xunit or visual studio test

我想將測試的定義及其實現拆分如下:

 [TestFixture] public abstract class ContainerTests { [Test] public abstract void BuildContainer(); } public class UnityTest : ContainerTests { public override BuildContainer() { // Implementation } } 

我想要一個場景的抽象定義,並以不同的方式實現它,以便我可以進行比較。 即使在基類中定義了TestRunner,也必須從繼承的類中捕獲所有測試。 有什么辦法嗎?

最好的問候,zimmy

使用xunit,您可以高興地做:-

 public abstract class ContainerTests
    {
        [Fact]
        public abstract void BuildContainer();
    }

    public class UnityContainer : ContainerTests
    {
        public override void BuildContainer()
        {
            Assert.Equal(1,2);
        }

    }

如果可以編寫您在NUnit中提供的代碼,則意味着派生類的每個開發人員都必須進行名為BuildContainer的測試。 該測試可以測試任何東西,甚至可以是空的。 因此,如果您的目的是強迫開發人員實施一項測試,以測試某些特定功能,則此舉將無濟於事。

但是,您可以做的是使用對派生類必須實現的特定抽象方法的調用在基類中實現測試。 通常,您希望這些方法做一些您可以在基類中聲明的事情,而不是讓它們自己執行所需的聲明。

通常,由於無法在NUnit中覆蓋測試方法,是由於作者認為在大多數情況下這不是一個好主意。 我很想聽聽這是一個反例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM