예상되는 결과가 다른 하나의 조합을 제외하고 매개 변수의 모든 조합을 테스트하는 테스트를 만들고 싶습니다. 하나의 특정 조합을 제외한 매개 변수의 모든 조합을 테스트하십시오.
은 지금까지 나는[TestCase(false, false, ExpectedResult = false)]
[TestCase(false, true, ExpectedResult = false)]
[TestCase(true, false, ExpectedResult = false)]
[TestCase(true, true, ExpectedResult = true)]
public bool Test(bool paramA bool paramB)
{
var target = new MyComand(paramA, paramB);
return target.CanExecute();
}
// this class is made up, but shows the basic concept
public class MyCommand
{
bool _preConditionA;
bool _preConditionB;
public MyCommand(bool preConditionA, bool preConditionB)
{
_preConditionA = preConditionA;
_preConditionB = preConditionB;
}
public bool CanExecute()
{
if (_preConditionA == false)
return false;
if (_preConditionB == false)
return false;
return true;
}
}
로 또는 어떤 미친 [TestCaseSource]
와 함께 올라와있다. 두 경우 모두 저에게 개인적으로 가독성 문제가 있습니다. 매개 변수가 부울 값 일뿐만 아니라 복잡해집니다. [Values]
및 [Combinatorical]
속성을 확인했지만 실제로는 그렇지 않습니다.
아무도 다른 문제를 해결할 수 있습니까?
이 질문을 덜 추상적으로 만들기 위해 "귀하의 경우에 효과가있는"데이터의 예를 들려 주시겠습니까? –
왜 'Combinatorial'이 테스트에 적합하지 않습니까? 완벽한 유스 케이스처럼 보입니다. –
@GabrielNegut [Combinatorical]은 올바르게 이해하는 것을 제외하고 모든 조합을 테스트합니다. 문제 현재 테스트가 특별한 테스트 케이스를 테스트하는지 알아 내기 위해 코드로드를 작성해야합니다. – HankTheTank