2012-03-14 31 views
6

Tôi đã dành rất nhiều thời gian với RSpec và một thời gian với các bài kiểm tra kiểu xunit. Tôi đã nhận được tùy chỉnh để có mocks và stubbing lúc xử lý của tôi.stubs và mocks trong R

Có điều gì giống như mocks hoặc stubbing trong R không? Những khung công tác nào có chúng?

Nếu bạn không cách ly các bài kiểm tra của mình?

+0

Tôi thấy không có câu trả lời ở đây về chế giễu hoặc stubbing. Bạn đã bao giờ tìm thấy một điều như vậy? –

+0

Oh! Chỉ cần phát hiện ra rằng 'testthat' bao gồm một hàm' with_mock() '. –

Trả lời

4

Có những cran gói RUnit, svUnittestthat tất cả trong số đó cung cấp kiểm tra đơn vị cho R.

Nếu bạn cần một khuôn khổ khác nhau, bạn có thể phải viết nó. CRAN sẽ sẵn sàng chấp nhận mã của bạn (nếu nó đáp ứng các tiêu chuẩn thông thường).

1

Ngoài ra còn có chức năng stub trong gói mockery. Nó cũng tương tự như with_mock, nhưng cũng cho phép phân tích các nguyên thủy và các hàm từ gói R cơ bản.

Ví dụ:

g = function(y) y 
f = function(x) g(x) + 1 
test_that('demonstrate stubbing', { 
    # before stubbing 
    expect_equal(f(1), 2) 

    # replace the function 'g' when called from 'f' 
    stub(f, 'g', function(...) 100) 
    expect_equal(f(1), 101) 
})