2
我在寫一個單元測試框架(IoCheck)。將有一個forAll
方法接受一個屬性,如isEven
,它返回一個整數是否是偶數,以及一個發電機列表list(genInt)
。如何在Io中的塊中應用動態參數列表?
的語法如下所示:
isEven := block(i, i % 2 == 0)
forAll(isEven, list(genInt))
由於不是所有的整數均勻,輸出如下:
***Failed!
57
forAll
將調用發電機,存儲在列表中的值,並將這些值應用到屬性100次。如果該屬性返回false,則測試用例將被視爲失敗,並且會將違規值打印到屏幕上。
爲了做到這一點,forAll
必須接受一個未知數的塊並用參數列表來調用它。我不知道該怎麼做。
注意:這與Io language 'apply arguments'不一樣,因爲在那種情況下,代碼知道的是arity而不是函數。在這種情況下,代碼將不會知道。