2017-11-20 21 views
2

私はRパッケージの簡単な印刷機能を持っている:テストカバレッジ

print.tabyl <- function(x){ 
    print.data.frame(x, row.names = FALSE) 
} 

私は私のパッケージの完全なテストカバレッジを達成しようとしていると、それは私のテストされていない印刷機能と私に不愉快私のテストカバレッジを99%(それ以外の場合は100%)に下げます。

しかし、私はprint関数の出力をキャプチャしてテストを書く方法を理解できません。印刷機能のテストを作成するにはどうすればよいですか? @alistaireからの提案パー

+2

'testthat'パッケージの' expect_output() '関数を見たことがありますか?私はリポジトリでプロットの出力をテストするために 'expect_output(print.tabyl(your_object))' –

+1

を使用するか、 'capture.output'でラップして、出力された行の文字列を返します – alistaire

答えて

0

、私はテストを書くためにcapture.outputを使用:

test_that("print.tabyl prints without row numbers", { 
    expect_equal(
    mtcars %>% tabyl(am, cyl) %>% capture.output(), 
    c(" am 4 6 8", " 0 3 4 12", " 1 8 3 2") 
) 
}) 

これはrow.namesが欠落していることをキャプチャします。この結果はまだ行番号を持っているcapture.output(print.data.frame(mtcars %>% tabyl(am, cyl)))とは異なります。

capture.outputを使用すると、両方の機能がテストされ、codecov.ioのトラッキングのカバレッジにカウントされます。

関連する問題