package com.github.mrpowers.scalatest.example
import org.scalatest.FunSpec
class CardiBSpec extends FunSpec {
describe("realName") {
it("returns her birth name") {
assert(CardiB.realName() === "Belcalis Almanzar")
}
}
describe("iLike") {
it("works with a single argument") {
assert(CardiB.iLike("dollars") === "I like dollars")
}
it("works with multiple arguments") {
assert(CardiB.iLike("dollars", "diamonds") === "I like dollars, diamonds")
}
it("throws an error if an integer argument is supplied") {
assertThrows[java.lang.IllegalArgumentException]{
CardiB.iLike()
}
}
it("does not compile with integer arguments") {
assertDoesNotCompile("""CardiB.iLike(1, 2, 3)""")
}
}
}
这个命令运行 iLike描述块中的四个测试(来自 SBT 命令行) :
testOnly *CardiBSpec -- -z iLike
你也可以使用引号,这样也可以:
testOnly *CardiBSpec -- -z "iLike"
这将运行一个单独的测试:
testOnly *CardiBSpec -- -z "works with multiple arguments"
这将运行以“ works with”开头的两个测试:
testOnly *CardiBSpec -- -z "works with"
我无法使用 -t选项来运行 CardiBSpec文件中的任何测试。该命令不运行任何测试:
testOnly *CardiBSpec -- -t "works with multiple arguments"
看起来当测试不嵌套在 describe块中时,-t选项可以工作。让我们看看另一个测试文件:
class CalculatorSpec extends FunSpec {
it("adds two numbers") {
assert(Calculator.addNumbers(3, 4) === 7)
}
}