gpt4 book ai didi

unit-testing - 如何对以事件区域作为输入的函数进行单元测试?

转载 作者:行者123 更新时间:2023-12-05 00:28:54 25 4
gpt4 key购买 nike

例如,这里有两个版本的函数来计算区域或字符串中“a”的实例:

(defun foo (beg end)
(interactive "r")
(let ((count 0))
(save-excursion
(while (/= (point) end)
(if (equal (char-after) ?a)
(setq count (1+ count)))
(forward-char)))
count))

(defun foo1 (str)
(let ((count 0))
(mapcar #'(lambda (x) (if (equal x ?a) (setq count (1+ count))))
str)
count))

这是检查功能 foo1的测试:
(require 'ert)
(ert-deftest foo-test ()
(should (equal (foo1 "aba") 2)))

但我如何测试功能 foo将一个区域作为输入,使用 ert单元测试框架?

最佳答案

我会第二个@sds 的建议,并添加建议执行以下操作:

(with-temp-buffer
(insert <text>)
(set-mark <markpos>)
(goto-char <otherend>)
(should (equal (call-interactively 'foo) <n>)))

关于unit-testing - 如何对以事件区域作为输入的函数进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091934/

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