-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Pending functionality for JUnit tests
- Loading branch information
Joakim Ohlrogge
committed
Mar 4, 2011
0 parents
commit 3425d43
Showing
9 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
;; This config was generated using ensime-config-gen. Feel free to customize its contents manually. | ||
|
||
( | ||
|
||
:project-package "poju4s" | ||
|
||
:use-sbt t | ||
|
||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
target/ | ||
lib_managed/ | ||
src_managed/ | ||
project/boot/ | ||
*~ | ||
.# |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#Project properties | ||
#Fri Mar 04 14:57:56 CET 2011 | ||
project.organization=johlrogge | ||
project.name=poju4s | ||
sbt.version=0.7.4 | ||
project.version=1.0 | ||
build.scala.versions=2.8.1 | ||
project.initialize=false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import sbt._ | ||
|
||
class Poju4s(info:ProjectInfo) extends DefaultProject(info) { | ||
val junitInterface = "com.novocode" % "junit-interface" % "0.5" % "test->default" | ||
val junit = "junit" % "junit" % "4.8.+" % "runtimeb" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package poju4s | ||
|
||
import junit.framework.AssertionFailedError | ||
|
||
class FixedButPendingException(pendingReason:String) extends AssertionFailedError("marked as pending because "+ pendingReason + "; but was fixed") { | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package poju4s | ||
|
||
trait Log { | ||
def warn(message: => String) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package poju4s | ||
|
||
trait Pending { | ||
val log: Log | ||
def pending(reason: String)(spec: => Unit) { | ||
(try { | ||
spec | ||
None | ||
} catch { | ||
case e: Throwable => Some("pending: " + reason) | ||
}) map (log.warn(_)) orElse(throw new FixedButPendingException(reason)) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package poju4s | ||
|
||
/** | ||
* Mixin this trait to get a list of messages logged in runtime | ||
*/ | ||
trait TestLog { | ||
var messages:List[LogMessage] = Nil | ||
val log:Log = new Log { | ||
def warn(msg: => String) = messages = Warn(msg) :: messages | ||
} | ||
} | ||
|
||
sealed trait LogMessage | ||
case class Warn(message:String) extends LogMessage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package poju4s | ||
|
||
import org.junit._ | ||
import org.junit.Assert._ | ||
import org.hamcrest.CoreMatchers._ | ||
|
||
class PendingSpec extends Pending with TestLog { | ||
@Test | ||
def aPendingFailingTestDoesNotReportFailures = pending("supposed to be pending, not failing")({ | ||
assertThat(true, is(false)) | ||
}) | ||
|
||
@Test | ||
def aPendingTestLogsThatItIsPending { | ||
pending("reason") { | ||
assertThat(true, is(false)) | ||
} | ||
messages.headOption map (assertEquals(Warn("pending: reason"), _)) orElse (Some(fail("Nothing was logged"))) | ||
} | ||
|
||
@Test(expected = classOf[FixedButPendingException]) | ||
def aFixedPendingTestStartsFailing { | ||
pending("reason") { | ||
// succeeds | ||
} | ||
} | ||
|
||
} |