What is the difference between Unit, Integration, Regression and Acceptance Testing?

Briefly: Unit testing – You unit test each individual piece of code. Think each file or class. Integration testing – When putting several units together that interact you need to conduct Integration testing to make sure that integrating these units together has not introduced any errors. Regression testing – after integrating (and maybe fixing) you … Read more

In ScalaTest is there any difference between `should`, `can`, `must`

should and must are the same semantically. But it’s not about better documentation, it’s basically just down to personal stylistic preference (I prefer must for example). can is a little different. You can’t (nomen omen) use it directly as a matcher, it’s only available in a test descriptor. Quote from FlatSpec: Note: you can use … Read more

Is there a way to execute a teardown function after all tests have been run?

Here is an example implementation of the custom test framework solution mentioned by Masklinn: #![feature(custom_test_frameworks)] #![feature(test)] #![test_runner(custom_test_runner)] extern crate test; use test::{test_main_static, TestDescAndFn}; fn main() {} pub fn custom_test_runner(tests: &[&TestDescAndFn]) { println!(“Setup”); test_main_static(tests); println!(“Teardown”); } #[cfg(test)] mod tests { #[test] fn test1() { println!(“Test 1”) } #[test] fn test2() { println!(“Test 2”) } } This … Read more

What is an ObjectMother?

ObjectMother starts with the factory pattern, by delivering prefabricated test-ready objects via a simple method call. It moves beyond the realm of the factory by facilitating the customization of created objects, providing methods to update the objects during the tests, and if necessary, deleting the object from the database at the completion of the test. … Read more