1
我有以下測試方法,它接受一個字符串數組,對其進行復制,排序,然後聲明已排序的複製元素應與原始數據不同。指導PEX嘗試排序的數組輸入
這個測試應該在大多數情況下通過,但我認爲如果輸入數組恰好已經被排序,它應該會失敗。
我無法讓PEX發現這種情況(除了將其作爲種子輸入提供)。我能在PEX中配置什麼,或者改變測試寫法的方式,讓PEX更有可能發現這個問題?發現這樣的輸入是否超出了PEX/Z3的功能?
[TestClass]
public class SortingPexTest
{
[PexMethod(TestEmissionFilter = PexTestEmissionFilter.All, MaxConstraintSolverTime = 4)]
[PexAllowedContractRequiresFailure]
public void TM([PexAssumeNotNull] String[] L0)
{
PexAssume.AreElementsNotNull(L0);
PexAssume.AreDistinctValues(L0);
String[] L1 = new String[L0.Length];
L0.CopyTo(L1, 0);
Array.Sort(L1);
PexAssert.IsTrue(!L0.SequenceEqual(L1));
}
}
微軟的Pex 0.94.51023.0 Pex的微軟的Visual Studio擴展