gpt4 book ai didi

scala - 每个案例作为 ScalaTest 中的单独测试 - JUnit ParameterizedTest 风格

转载 作者:行者123 更新时间:2023-12-04 08:23:39 26 4
gpt4 key购买 nike

这是 JUnit 中的参数化测试:

@ParameterizedTest
@ValueSource(strings = {"Username", "User123", "Another username", "Another_username" })
@DisplayName("should evaluate acceptable usernames as correct")
public void shouldEvaluateAcceptableUsernamesAsCorrect(String username) {
assertThat(UsernameValidator.validate(username)).isTrue();
}
之后,在 IntelliJ 的测试结果部分,可以看到哪些参数测试失败了 - 这非常方便。
parametrized test result in JUnit
在 ScalaTest 中,也可以编写参数化测试:
class UsernameValidatorTests extends AnyFunSuite with Matchers {
val correctUsernames = Table("Username", "User123", "Another username", "Another_username")

test("should evaluate acceptable usernames as correct") {
forAll (correctUsernames) { (name: String) =>
UsernameValidator.validate(name) shouldBe true
}
}
}
但是在这个解决方案中,它只是针对所有情况的一个单一测试。
parametrized test result in ScalaTest
ScalaTest 中的 JUnit 是否可以实现效果?

最佳答案

尝试翻转 testforall命令:

forAll (correctUsernames) { (name: String) =>
test(s"should evaluate acceptable usernames as correct $name") {
UsernameValidator.validate(name) shouldBe true
}
}
然后您将运行 3 个测试。
您编写的测试声明了一项测试,该测试执行其中的所有检查。当您翻转订单时,对于每个条目,您都会创建一个新测试。

关于scala - 每个案例作为 ScalaTest 中的单独测试 - JUnit ParameterizedTest 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65378298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com