首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scalatest:如果两个匹配程序之一匹配,则进行有效的测试。

Scalatest:如果两个匹配程序之一匹配,则进行有效的测试。
EN

Stack Overflow用户
提问于 2015-08-18 12:23:46
回答 1查看 95关注 0票数 3

我很难在一个案例类上的匹配器之间建立一个or关系,这种关系是在给定类的不同方法/字段上匹配的。

我知道我可以用exists做这件事,||最终会有一个Bool,但是会删除我不想要的测试框架中的所有反馈。

下面是我想要做的事情的一个例子:

代码语言:javascript
复制
class ExampleSpec extends FunSpec with Matchers {

  case class Element(count: Int,  value: String)

  val data : List[Element] = List(
    Element(0, "ok"),
    Element(5, "")
    Element(0,""),
    Element(1, "a")
  )

  describe("My data test") {
    data foreach {d =>
        it("valid data either has a count > 0 or the value is not empty") {
          d.count should be > 0 or d.value should not be empty // I have no idea how to get the or working
        }

    }
  }
}

我能想到的最好的事情是:

代码语言:javascript
复制
   def okishSolution(e: Element) = {
     val res = (e.count > 0 || d.value.nonEmpty)
     if (! res) { info(s"Failed: $d , did not meet requirements") }

      res should be(true)
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 13:17:04

这并不完美,但你可以使用should matchPattern

代码语言:javascript
复制
d should matchPattern {
  case x:Element if x.count > 0 =>
  case x:Element if x.value != "" =>
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32072339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档