私は単体テストにはまったく新しいです(私は実際に話しているように勉強しています)C#デコレータパターンに従ったクラスを適切に単体テストする方法は?
私の目標はもちろん、下のクラスの中のメソッドをテストできることです。
クラスは、入力がキャッシュ内にあるかどうかを単純にチェックします。入力がキャッシュにない場合は、入力の逆の形式を返します(実装はここにはありませんが、目的はちょうどテストすることです)。
基本的な目的は、if-elseがテストされていることを確認することです。
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace YouSource.Decorator.Tests
{
[TestClass]
public class CachingDecoratorTest
{
private IModifyBehavior behavior;
[TestInitialize]
public void Setup()
{
this.behavior = new StubModifyBehavior(new CachingDecorator());
}
[TestCleanup]
public void Teardown()
{
this.behavior = null;
}
[TestMethod]
public void Apply_Cached_ReturnsReversedCachedValue()
{
string input = "randel";
string reversed = "lednar";
Assert.AreEqual(reversed, this.behavior.Apply(input));
}
[TestMethod]
public void Apply_NotCached_ReturnsReversed()
{
string input = "not cached";
string reversed = "reversed";
Assert.AreEqual(reversed, this.behavior.Apply(input));
}
public class StubModifyBehavior : IModifyBehavior
{
private IModifyBehavior behavior;
public StubModifyBehavior(IModifyBehavior behavior)
{
this.behavior = behavior;
}
public string Apply(string value)
{
//return this.behavior.Apply(value);
}
}
}
}