问题描述
我有以下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 (将#修改为@)