接続を生成する関数の単体テストを検討しています。実行中に接続の詳細を含むメッセージを出力します。
以下をテストしたい:
- メッセージは期待どおりに表示されます (
expect_message(fn(),"blah")
) - エラーはありません (
expect_error(fn(),NA)
) - 作成されたオブジェクトは特定のクラスです (
expect_is(fn(),"PostgreSQLConnection")
)
私はres<-fn()
それを実行してexpect_is()
から実行することができましたが、関数を呼び出している間にメッセージとエラー (の欠如) の両方でテストを実行するにはどうすればよいでしょうか。
理想的には、3 つすべてを同時に評価し、後で安全に接続を閉じることができるようにしたいと考えています。
library(testthat)
fn<-function(){
message("blah")
obj<-"blah"
class(obj)<-c("PostgreSQLConnection",class(obj))
return(obj)
}
expect_message(fn(),"blah")
expect_error(fn(),NA)
expect_is(fn(),"PostgreSQLConnection")
PSexpect_message
および関数は、非推奨であるかどうかにかかわらず、次のexpect_error
ような関数を使用します。ドキュメントはその点で少し混乱しています。throws_error
?throws_error