2016-07-17 14 views
0

私自身のユニットテスト関数を作成しようとしています。ユニットテスト関数elisp

;;function 
(defun multiply-2 (number) 
    (* 2 number)) 


;;test function 
(defun test (function parameters result) 
(with-output-to-temp-buffer "tests" 
    (progn 
    (if (equal (#'function parameters) result) (print "teste ok") (print "fail")) 
    ))) 

;;using test function 
(test multiply-2 2 4) 

しかし、私はこのコードを実行したときに、私はこのエラーを取得しています:

Debugger entered--Lisp error: (void-variable multiply-2) 
    (test multiply-2 2 4) 
    eval((test multiply-2 2 4) nil) 
    eval-last-sexp-1(nil) 
    eval-last-sexp(nil) 
    call-interactively(eval-last-sexp nil nil) 

答えて

1

一つの問題は、あなたがtest関数に渡すときにmultiply-2を引用していないということです。適切にテストする機能を呼び出すためにfuncallを使用し、

(test #'multiply-2 2 4) 

次に、あなたの呼び出しを変更します。

(if (equal (funcall function parameters) result) 
    (print "test ok") 
    (print "fail")) 
0

buttercup elispのためのテスト駆動フレームワークです。私はそれが良い選択だと思う。

関連する問題