2

我正在使用VS2010數據庫單元測試框架。我已經創建了一個從DataSetTestCondition繼承的條件,並且工作正常。我現在想寫從ResultSetCondition繼承的條件,但我不斷收到錯誤:VS2010數據庫單元測試從ResultSetCondition繼承

「DBUnitTestConditions.ConditionMulti」不實現繼承的抽象成員「Microsoft.Data.Schema.UnitTesting.Conditions.ResultSetCondition.DoAssert (System.Data.DataTable)」

這基本上是我使用的代碼:

using Microsoft.Data.Schema.UnitTesting.Conditions; 
using System.Data; 

namespace DBUnitTestConditions 
{ 
    public class ConditionMulti : ResultSetCondition 
    { 
     public ConditionMulti() 
     { 

     } 

     public void DoAssert(DataTable dt) 
     { 

     } 
    } 
} 

如果我嘗試使用對象瀏覽器在ResultSetCondition看看還有什麼指的DosAssert那裏。但是如果我使用解決方案導航器,我看到DoAssert,但它似乎是私有的。任何幫助,將不勝感激。

感謝

回答

1

編輯:完全重寫

我檢查的源代碼:

namespace Microsoft.Data.Schema.UnitTesting.Conditions 
{ 
    public abstract class ResultSetCondition : TestCondition 
    { 
      //...  
      internal abstract void DoAssert(DataTable resultSet); 
    } 
} 

所以DoAssert標記爲internal。因此,您不能從ResultSetCondition繼承,因爲 internal abstract意味着該類只能在定義它的程序集中繼承。
這是沒有辦法的。

+0

我也試過,並給出了額外的錯誤:**'DBUnitTestConditions.ConditionMulti.DoAssert(System.Data.DataTable)':找不到合適的方法覆蓋** – georges 2012-01-29 22:14:23

+0

好吧,現在我明白了,檢查我更新的答案。 – nemesv 2012-01-29 22:25:00

+0

鑑於課程本身是公開的,MS似乎有點奇怪。我會看看基於TestConsition的東西。謝謝! – georges 2012-01-29 22:35:39