RhinoMocks를 사용하여 특정 메소드를 호출 할 때 메소드가 아이템을 적절하게 그룹화 한 다음 다른 메소드를 호출하는지 확인하려고합니다. 이 같은매개 변수가 제대로 사용되고 있는지 확인하는 데 가장 좋은 테스트 패턴은 무엇입니까?
뭔가 : 문제가 나를 위해 시작되는 다음
//Arrange
var bucketsOfFun = new BucketGame();
var balls = new List<IBall>
{
new Ball { Color = Color.Red },
new Ball { Color = Color.Blue },
new Ball { Color = Color.Yellow },
new Ball { Color = Color.Orange },
new Ball { Color = Color.Orange }
};
//Act
bucketsOfFun.HaveFunWithBucketsAndBalls(balls);
//Assert ???
이다. 내 방법은 다음과 같이하고있다 :
public void HaveFunWithBucketsAndBalls(IList<IBall> balls)
{
//group all the balls together according to color
var blueBalls = GetBlueBalls(balls);
var redBalls = GetRedBalls(balls);
// you get the idea
HaveFunWithABucketOfBalls(blueBalls);
HaveFunWithABucketOfBalls(redBalls);
// etc etc with all the different colors
}
public void HaveFunWithABucketOfBalls(IList<IBall> colorSpecificBalls)
{
//doing some stuff here that i don't care about
//for the test i'm writing right now
}
내가 주장하고 싶은 것은 그런 내가 다음 1 빨간 공의 그룹, 1 개 파란색 공을 전화 드렸습니다 HaveFunWithABucketOfBalls를 호출 할 때마다, 다음 1 노란색 공 , 오렌지 볼 2 개.
내가 그 행동을 주장 할 수 있다면 그 방법이 볼을 적절히 그룹화하고 싶은대로하고 있는지 확인할 수 있습니다.
가장 좋은 테스트 패턴은 무엇입니까?
그냥 funsies 위해, 왜 당신의 방법은 다른 방법을 호출 테스트입니까? 아마도 여러분은 여러분의 객체에 대한 공용 메소드를 테스트하고 올바른 출력을 얻는다는 것을 주장해야하며 실제 내부 구현을 테스트해서는 안됩니다. – Juliet
@Juliet 두 가지 방법이 모두 공개되어 있기 때문에 좋은 지적입니다. 내 실제 구현에서는 둘 다 독립적으로 사용할 수 있습니다. 그래서이 둘의 유일한 차이점은 여기에서 설명하는 방법으로 객체를 구성하는 방법입니다. 따라서이 기능을 테스트하고 싶습니다. – Joseph