import org.scalatest._ // class UsingScalaTest extends FlatSpec with Matchers { trait EmptyArrayList { val list = new java.util.ArrayList[String] } "a list" should "be empty on create" in new EmptyArrayList { list.size shouldBe 0 } it should "increase in size upon add" in new EmptyArrayList { list.add("Milk") list add "Sugar" list.size should be(2) } } class UsingBeforeAndAfter extends FlatSpec with BeforeAndAfter with Matchers { var list: java.util.List[String] = _ before { println("before") list = new java.util.ArrayList[String] } after { println("after") if (list != null) { list = null } } "a list" should "be empty on create" in { list.size shouldBe 0 } it should "increase in size upon add" in { list.add("Milk") list add "Sugar" list.size should be(2) } } class UsingBeforeAndAfterAll extends FlatSpec with BeforeAndAfterAll with Matchers { var list: java.util.List[String] = _ override def beforeAll(): Unit = { println("before all...") list = new java.util.ArrayList[String] super.beforeAll() } override def afterAll(): Unit = { println("after all...") if (list != null) { list = null } super.afterAll() } "a list" should "be empty on create" in { list.size shouldBe 0 } it should "increase in size upon add" in { list.add("Milk") list add "Sugar" list.size should be(2) } } class UsingGivenWhenThen extends FlatSpec with GivenWhenThen with Matchers { trait EmptyArrayList { val list = new java.util.ArrayList[String] } "a list" should "be empty on create" in new EmptyArrayList { Given("a empty list") Then("list size should be 0") list.size shouldBe 0 } it should "increase in size upon add" in new EmptyArrayList { Given("a empty list") When("add 2 elements") list.add("Milk") list add "Sugar" Then("list size should be 2") list.size should be(2) } }