NUnit은 실제 값이 주어진 열거 가능 또는 배열의 요소인지, 즉 여러 기대 값 중 하나와 같은지 여부를 찾기 위해 제약 조건을 제공합니까? 가치? 같은 뭔가 : 지적하는 것입니다값이 예상 값 모음 중 하나와 같음을 나타냅니다.
Assert.That(actual, Is.EqualToAnyOf(new[] { 1, 2, 3 }))
은의 실제는 하나의 값입니다. 값이 1
, 2
또는 3
일 것으로 예상됩니다. 주장
Assert.That(actual, Contains.Element(expected))
검사 논리적으로 동일하지만, 반대의 의도는 다음과 같습니다 여기에 우리가 실제 값의 컬렉션을 가지고 하나 개의 값이 될 것으로 기대합니다.
또한, 나는이를 찾았지만 그들은 모두 맞지 않는 :
Assert.That(actual, Is.EqualTo(expected)) // only allows one value
Assert.That(actual, Is.InRange(start, end)) // only works for consecutive numbers
Assert.That(actual, Is.SubsetOf(expected)) // only works if actual is an enumerable
Assert.That(expected.Contains(actual)) // meaningless "expected: true but was: false" message
+1 답변이 왜 내려 갔는지 알 수 없습니다. 나는 그것이 내가 원한 것에 가장 가깝다고 생각한다. 나는이 주장이 상자에서 제공되기를 바랄 뿐이었다. – chiccodoro
나는 다음을 사용하여 "숙제"(1)를 해결했다 : writer.WritePredicate ("of either"); writer.WriteExpectedValue (this.expected);'와 (2) IsEqual.ToAny (expected) 메소드를 제공한다. 그러나 메시지를 적용하려면 기본 클래스를 '제약 조건'으로 변경해야했습니다. 왜 그런지 물어 보지 마세요 ... 메시지가 지금 읽습니다. '예상 됨 : < 0, 1, 2 > 중 하나 : 6' – chiccodoro
@chiccodoro, 감사합니다. –