什么是“断言框架”?


10

当我发现js-test-driver单元测试框架时,我发现该框架背后的人打算将其与断言框架集成。什么是断言框架?它是一种单元测试框架吗?如果是这样的话,那么这些框架有什么具体特点?

Answers:


9

断言框架的一个例子是Hamcrest形成了统一的JUnit 4 Hamcrest不运行测试,它只是提供了一个表达方式来写断言。

旧的JUnit样式相等性声明:

assertEquals(constant, underTest);
// or for doubles
assertEquals(3.5, underTest, .001); // within 1/1000th

Hamcrest风格平等断言:

assertThat(underTest, Is.EqualTo(constant));
// or for doubles
assertThat(underTest, Is.EqualTo(3.5).Within(.001));

本质上,断言框架允许您以易于扩展的方式执行断言。因为断言框架仅关注断言,所以它可以比必须收集和运行测试的工具做得更好。NUnit还对声明采用了Hamcrest方法。您不会使用Hamcrest来运行测试,而只是编写断言。


2

JsTestDriver主要关心提供测试运行程序,即执行测试的方式。

它提供了一个内置的断言框架,其样式为xUnit。这实际上用于编写测试(例如assertTrue,assertEquals等)。但是,它也允许您插入其他断言框架。当前有一些用于Unit和Jasmine的插件,它们提供BDD样式声明。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.