[R] Using a mock of an S4 class

Ramiro Barrantes ramiro at precisionbioassay.com
Thu Feb 2 20:58:52 CET 2017


Yes, so are you suggesting that I create an instance of my S4 class in order to test my function.

My understanding is that ideally the test should not depend on any code besides the one that I am testing.

I just thought that you could perhaps define a mock class so that I would not need to invoke my external constructor function, hence making this test focus exclusively on the function that I am trying to test.  Is it possible to do this in R?

On 2/1/17, 6:57 PM, "David Winsemius" <dwinsemius at comcast.net> wrote:

>
>> On Feb 1, 2017, at 11:46 AM, Ramiro Barrantes
>><ramiro at precisionbioassay.com> wrote:
>> 
>> Hello,
>> 
>> I have a function that applies to an S4 object which contains a slot
>>called @analysis:
>> 
>> function calculation(myObject) {
>>  tmp <- myObjects at analysis
>>  result <- ...operations on analysis...
>>  return result
>> }
>> 
>> I am writing a unit test for this function.  So I was hoping to create
>>a mock object but I can't figure out how to do it:
>> 
>> test_that("test calculation function", {
>>  mockMyObject<- mock(?????)  #I am not sure what to put here
>>  r<-calculation(mockMyObject)
>>  expect_true(r,0.83625)
>> })
>> 
>> How can I create a mock S4 object??
>
>I'm not seeing a class definition for any "S4"-classed object. I would
>expect you to have used `setClass`. I believe that once the class is
>defined that you should have access to the `new` constructor function.
>
>> 
>> Thanks in advance,
>> Ramiro
>> 
>> 	[[alternative HTML version deleted]]
>
>R-help is a plain-text mailing list.
>
>--
>
>David Winsemius
>Alameda, CA, USA
>




More information about the R-help mailing list