クラスの 1 つをテストしているときに、ちょっとした問題に遭遇しました。1 つのパブリック メソッドと 2 つの保護された抽象を一度に含む抽象クラスがあります。天気予報パブリック メソッド呼び出しを抽象化の 1 つを 1 回テストする必要があります。
私のコードがどのように見えるかの例を次に示します。
public abstract class A
{
public string DoSomething(stirng input)
{
var output = new StringBuilder();
foreach (var currentChar in input)
{
output.Append(DoSomethingElse(currentChar));
}
return output.ToString();
}
protected abstract char DoSomethingElse(char charToChange);
}
public class B : A
{
protected override char DoSomethingElse(char charToChange)
{
var changedChar = charToChange;
// Some logic changing charToChange's value
return changedChar;
}
}
DoSomethingElse()
は保護されているため、そのメソッドを公開するクラスを作成しました
public class BPublisher : B
{
public virtual new char DoSomethingElse()
{
return base.DoSomethingElse()
}
}
私の質問は、 Rhino モックを使用してDoSomething()
呼び出されたという事実をどのようにテストするのですか?DoSomethingElse()
PS and を使用してみExpect
ましAssertWasCalled
たが、成功しませんでした。