如何解决在ScalaTest中的另一个套件中重复使用测试
我有以下ADT:
sealed trait TestAdt
case class First(i: Int) extends TestAdt
case class Second(j: String) extends TestAdt
case class Third(k: Long) extends TestAdt
def foo(testAdt: TestAdt): Int = testAdt match {
case f: First => fooFirst(f)
case j: Second => fooSecond(j)
case k: Third => fooThird(k)
}
private def fooFirst(firstAdt: First): Int = //...
private def fooSecond(secondAdt: Second): Int = //...
private def fooThird(thirdAdt: Third): Int = //...
我对所有fooFirst
,fooSecond
和fooThird
函数编写了测试,如下所示:
class FooFirstTest extends AnyFunSuite with Matchers {
//test cases
}
class FooSecondTest extends AnyFunSuite with Matchers {
//test cases
}
class FooThirdTest extends AnyFunSuite with Matchers {
//test cases
}
现在,我想测试功能foo
本身,因此似乎很自然地只需重用分别为每个分支实现的测试用例:FooFirstTest
,FooSecondTest
和{ {1}}。例如,FooThirdTest
涵盖了功能FooFirstTest
的一些测试用例,因此功能fooFirst
的情况也成立。
问题::如何重用功能foo
,FooFirstTest
和{{ 1}}相应地为功能FooSecondTest
编写测试?
FooThirdTest
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。