【问题标题】:How to perform unit test for Binding.Scala?如何为 Binding.Scala 执行单元测试?
【发布时间】:2020-01-25 12:51:46
【问题描述】:

我使用Binding.scala 编写了组件,它们对我来说运行良好。现在我想使用ScalaTest 对它们进行单元测试。如何对它们进行单元测试?

我参考了Binding.scala's unit tests。但是它对我不起作用,因为 getvaluemethods 无法访问。

【问题讨论】:

  • 你能分享你的代码吗?
  • 如果你不分享你的“不工作”的代码/测试,我们看不出它为什么不工作......
  • 操作!真的不可能在用户代码中编写这样的测试:``` "TextElement" in { @dom val monadicDiv: Binding[Div] =
    text
    monadicDiv.watch() assert(monadicDiv.get. outerHTML == "
    text
    ") } ``` 因为Binding.get/Binding.value 是私有的/受保护的:(
  • @Imars;感谢您的快速代码。我也想做同样的事情。

标签: scala scalatest scala.js binding.scala


【解决方案1】:

在当前版本的Binding.scala (11.8.1) 中,您可以使用此方法进行单元测试:

  "Comment" in {
    @dom def comment = <div><!--my comment--></div>
    val div = document.createElement("div")
    dom.render(div, comment)
    assert(div.innerHTML == "<div><!--my comment--></div>")
  }

不幸的是,您无法编写这样的(性能更高的?)测试:

  "TextElement" in {
    @dom val monadicDiv: Binding[Div] = <div>text</div>
    monadicDiv.watch()
    assert(monadicDiv.get.outerHTML == "<div>text</div>")
  }

因为Binding.get/Binding.value 是私有的/受保护的。 我填写了关于这个https://github.com/ThoughtWorksInc/Binding.scala/issues/217

的问题

【讨论】:

猜你喜欢
  • 2020-05-23
  • 2019-05-29
  • 1970-01-01
  • 2010-10-07
  • 2019-06-02
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多