gpt4 book ai didi

testing - 你怎么能 "parameterize"Clojure Contrib 的测试是?

转载 作者:行者123 更新时间:2023-11-28 19:55:12 25 4
gpt4 key购买 nike

两者都是JunitTestNG提供迭代输入参数集合并针对它们运行测试的机制。在 Junit 中,这是通过 Parameterized annotation 支持的,而 TestNG 使用 @DataProvider

如何使用 test-is 库编写数据驱动的测试?我尝试使用 for 列表理解来迭代输入参数集合,但因为 deftest 是一个宏,所以它需要 is 子句。

最佳答案

从阅读关于 Junit 中参数化测试的文章看来,一旦你通过了样板,参数化的最酷的部分就是它可以让你输入这个:

      return Arrays.asList(new Object[][] {
{ 2, true },
{ 6, false },
{ 19, true },
{ 22, false }

并轻松定义四个测试。

在测试中是等效的(不需要样板代码)宏是 are

(are [n prime?] (= prime? (is-prime n))  
3 true
8 false)

如果你想将你的输入作为 map 提供,那么你可以运行如下命令:

(dorun (map #(is (= %2 (is-prime %1)) 
{ 3 true, 8 false}))

虽然 are 宏会产生更容易阅读的输出。

关于testing - 你怎么能 "parameterize"Clojure Contrib 的测试是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1867760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com