[R] Unit Testing Frameworks: summary and brief discussion
Martin Morgan
mtmorgan at fhcrc.org
Wed May 9 19:42:27 CEST 2007
ml-r-help at epigenomics.com writes:
> anthony.rossini at novartis.com wrote:
> [...]
>> ============= From Seth Falcon:
>> 1. At last check, you cannot create classes in unit test code and
>> this makes it difficult to test some types of functionality. I'm
>> really not sure to what extent this is RUnit's fault as opposed
>> to limitation of the S4 implemenation in R.
>
> I'd be very interested to hear what problems you experienced. If you
> have any example ready I'd be happy to take a look at it.
> So far we have not observed (severe) problems to create S4 classes and
> test them in unit test code. We actually use RUnit mainly on S4 classes
> and methods. There are even some very simple checks in RUnits own test
> cases which create and use S4 classes. For example in tests/runitRunit.r
> in the source package.
RUnit has been great for me, helping to develop a more rigorous
programming approach and gaining confidence that my refactoring
doesn't (unintentionally) break the established contract.
One of the strengths of unit tests -- reproducible and expressible in
the way that language sometimes is not:
testCreateClass <- function() {
setClass("A", contains="numeric")
checkTrue(TRUE)
}
RUNIT TEST PROTOCOL -- Wed May 9 10:36:53 2007
***********************************************
Number of test functions: 1
Number of errors: 1
Number of failures: 0
1 Test Suite :
CreateClass_test - 1 test function, 1 error, 0 failures
ERROR in testCreateClass: Error in assign(mname, def, where) : cannot add bindings to a locked environment
> sessionInfo()
R version 2.6.0 Under development (unstable) (2007-05-07 r41468)
x86_64-unknown-linux-gnu
locale:
LC_CTYPE=en_US;LC_NUMERIC=C;LC_TIME=en_US;LC_COLLATE=en_US;LC_MONETARY=en_US;LC_MESSAGES=en_US;LC_PAPER=en_US;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US;LC_IDENTIFICATION=C
attached base packages:
[1] "tools" "stats" "graphics" "grDevices" "utils" "datasets"
[7] "methods" "base"
other attached packages:
RUnit
"0.4.15"
--
Martin Morgan
Bioconductor / Computational Biology
http://bioconductor.org
More information about the R-help
mailing list