나는 단위 테스트를 처음하는 사람이다. (사실 우리가 말하는 것처럼 실제로 공부하고있다.)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);
}
}
}
}