[SCALA] Scalatest - 테스트하는 방법에 println
SCALAScalatest - 테스트하는 방법에 println
나를에 println 문을 통해 표준 출력으로 출력을 테스트 할 수 Scalatest에 뭔가가 있나요?
지금까지 주로 ShouldMatchers와 FunSuite을 사용하고있다.
예를 들면 우리의 인쇄 출력을 확인 어떻게
object Hi {
def hello() {
println("hello world")
}
}
해결법
-
==============================
1.콘솔에서 테스트 인쇄 문에 일반적인 방법은 다르게 그래서 당신이 그 문을 가로 챌 수있는 프로그램 비트를 구성하는 것입니다. 당신은 예를 들어 출력 특성을 도입 할 수 있습니다 :
콘솔에서 테스트 인쇄 문에 일반적인 방법은 다르게 그래서 당신이 그 문을 가로 챌 수있는 프로그램 비트를 구성하는 것입니다. 당신은 예를 들어 출력 특성을 도입 할 수 있습니다 :
trait Output { def print(s: String) = Console.println(s) } class Hi extends Output { def hello() = print("hello world") }
그리고 당신의 테스트에서 당신은 MockOutput 실제로 전화를 차단하는 다른 특성을 정의 할 수 있습니다 :
trait MockOutput extends Output { var messages: Seq[String] = Seq() override def print(s: String) = messages = messages :+ s } val hi = new Hi with MockOutput hi.hello() hi.messages should contain("hello world")
-
==============================
2.당신은 단지 제한된 기간 동안 콘솔 출력을 재 지정하려면, 콘솔에 정의없이 withErr 방법을 사용합니다 :
당신은 단지 제한된 기간 동안 콘솔 출력을 재 지정하려면, 콘솔에 정의없이 withErr 방법을 사용합니다 :
val stream = new java.io.ByteArrayOutputStream() Console.withOut(stream) { //all printlns in this block will be redirected println("Fly me to the moon, let me play among the stars") }
-
==============================
3.당신은 Console.setOut (의 PrintStream)를 사용하여에에 println 쓰기를 교체 할 수 있습니다
당신은 Console.setOut (의 PrintStream)를 사용하여에에 println 쓰기를 교체 할 수 있습니다
val stream = new java.io.ByteArrayOutputStream() Console.setOut(stream) println("Hello world") Console.err.println(stream.toByteArray) Console.err.println(stream.toString)
당신은 분명히 당신이 원하는 스트림의 모든 유형을 사용할 수 있습니다. 당신은 표준 에러와 표준 입력에 대한 것은 같은 종류의 작업을 수행 할 수 있습니다
Console.setErr(PrintStream) Console.setIn(PrintStream)
from https://stackoverflow.com/questions/7218400/scalatest-how-to-test-println by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 기존 DataFrame 사용 withColumn에 두 개의 열을 추가 (0) | 2019.11.27 |
---|---|
[SCALA] 스칼라 스파크 DataFrame : dataFrame.select 여러 열은 열 이름의 순서를 부여 (0) | 2019.11.27 |
[SCALA] 스칼라에서; 나는 응용 프로그램의 특성을 사용해야합니까? (0) | 2019.11.27 |
[SCALA] 스칼라 - 가변 (VAR)에있어서의 파라미터를 참조 (0) | 2019.11.27 |
[SCALA] 스칼라지도 자바지도로 변환 (0) | 2019.11.27 |