问题标签 [assertj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7327 浏览

java - Maven 测试编译在类路径中找不到类

我有一个关于这个 pom 的小项目......

在 Eclipse 中,一切正常,测试工作(使用 maven 找不到的那个类),但是当我尝试通过 maven 清理安装它时,我得到一个错误,它AbstractCharSequenceAssert在这一行中找不到(AssertJ 的一部分)(这是低于另一个公共类的类):

信息]------------------------------------------------ ------------- [错误] 编译错误:
[信息] ---------------------------- -------------------------------- [错误] /home/fschaetz/workspaces/workspace5/.../shipcloud- api/src/test/java/com/example/shipcloud/rest/shipcloud/domain/AddressSearchFieldsTest.java:[103,39] 错误:找不到符号 [ERROR] 符号:类 AbstractCharSequenceAssert

我查看了调试输出,在运行 testCompile 时,AssertJ jar 实际上位于提供给编译器的类路径中:

-classpath ...:/home/fschaetz/.m2/repository/org/assertj/assertj-core/2.2.0/assertj-core-2.2.0.jar:...

(该文件存在,可读,包含类并且在 Eclipse 中工作正常)。

我已经尝试过干净(maven/eclipse),在项目上运行更新等,但似乎没有任何效果。当我尝试在 jenkins 中运行 maven 安装时,也会发生同样的事情,顺便说一句。

制造麻烦的类的进口是......

有任何想法吗?

0 投票
1 回答
135 浏览

java - AssertJ,想要为每个 assertThat 做 pre 和 post

我在AssertJ和 Java 8 中使用 SoftAssertions,

例如:

SoftAssertions 轻柔地 = new SoftAssertions();

softly.assertThat(mansion.guests()).as("活着的客人").isEqualTo(7);

softly.assertThat(mansion.kitchen()).as("Kitchen").isEqualTo("clean");

softly.assertThat(mansion.library()).as("Library").isEqualTo("clean");

softly.assertAll();

我想为每个assertThat () 语句做 Pre & Post 操作。

请建议。

0 投票
5 回答
4883 浏览

java - 如何确保一个字符串恰好有一个子字符串 n 次?

我想检查一个字符串是否包含某个子字符串 n 次。我知道我可以做到:

Assertions.assertThat(myString).contains("xyz");

甚至 Assertions.assertThat(myString).containsOnlyOnce("xyz");

但是我怎样才能保证这 n 次呢?

我试过类似的东西:

Assertions.assertThat(myString).areExactly(n, myString.contains("xyz"));但遗憾的是,这是不可编译的。

有任何想法吗?

0 投票
1 回答
901 浏览

assertj - 如何在 assertj 中验证元素是

我找不到如何使用 assertj 检查以下内容(这很常见):

假设我有:

我想检查结果中的值是以下之一:

使用 assertj,应该是:

这样 result1 会通过检查,但 result2 不会。

contains() 不起作用(它检查结果是否包含所有有效元素)

我不想为这种检查创建自定义条件

任何想法?

0 投票
3 回答
1312 浏览

assertj - assertj 如何在列表中检查属性是否大于值

鉴于:

如何检查点列表中的属性 x 是否大于值?我的目标类似于:

但是我在“提取”后找不到“isGreatherThan”

更新

我不打算为这种值检查编写自定义条件,因为 assertj 已经有检查数字的方法。

谢谢

0 投票
3 回答
3243 浏览

spring-mvc - 有没有办法在 Spring MVC 测试中使用 AssertJ 断言?

我在我的项目中使用 AssertJ 已经有一段时间了。最近我开始使用 Spring MVC Test 来测试 Spring MVC 控制器。

但我不知道如何使用 AssertJ。我在网上看到的所有示例都使用带有 Spring MVC 测试的 Hamcrest。

下面是使用 Hamcrest API 的示例。

0 投票
1 回答
3406 浏览

android-studio - java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;

在 AndroidStudio (1.4) 上运行 unitTest 时,我的以下测试按照标题失败,即java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(Ljava/util/Map;)Lorg/assertj/core/api/MapAssert;

当我使用 gradlew 命令从命令行运行它时,它通过了。我已经将我的 Java 指向 jdk1.8.0_66.jdk。有谁知道为什么?

(p/s:我得到了最新的 AndroidStudio 2.0 Preview 5,我的测试严重失败。所以我决定继续使用旧版本的 Android Studio)。

试图寻求帮助并找到此链接https://github.com/joel-costigliola/assertj-core/issues/395。显然他在 IDE 上也面临同样的问题。任何线索是什么原因?

0 投票
1 回答
187 浏览

java - AssertJ Swing 3.2 中的 JInternalFrameFixture.comboBox()

我正在将一些代码从 FEST Swing 1.2.1 迁移到 AssertJ Swing 3.2。在旧代码中有调用

  • JInternalFrameFixture.comboBox()
  • JInternalFrameFixture.label()
  • JInternalFrameFixture.slider()

JInternalFrameFixture不幸的是,我在AssertJ Swing中没有看到任何匹配方法。我应该使用什么来代替 AssertJ Swing 3.2 中的上述方法?

我发现ComponentContainerFixture有一个comboBox()方法,但JInternalFrameFixture没有在 AssertJ Swing 中实现这个方法。

0 投票
1 回答
350 浏览

java - fest 和 assert-j 与自定义地图的细微差别

在我正在工作的项目中,已决定停止使用 fest 进行测试断言,而是使用 assertj。我们正在使用 Java 7,并且我们正在从 fest 版本 2.0M10 迁移到 assertj-core 版本 2.4.1。代码库相当大,但从 fest 到 assertj 的过渡很顺利,基本上是更改了导入名称并处理了重命名的方法。但是,我注意到在转换后我们在特定测试类中遇到了测试失败(我应该补充一点,我们使用的是 JUnit v4.12)。下面我展示了一个小的、独立的测试用例来突出这个问题:

我很抱歉这么长的一段代码。从测试结果中可以看出,当在 hashmap 上使用 isEqualTo() 时,fest 和 assertj 之间似乎存在差异,其中一个 hashmap 封装在实现接口映射的类中。我的问题是如何处理这个?我可以翻转断言中的顺序,即使用 assertThat(b).isEqualTo(a) 而不是 assertThat(a).isEqualTo(b)。但是对于我来说,在一个有很多断言的大型测试类中对特定断言做这样一个翻转对我来说有点奇怪。fest 和 assertj 之间的这种差异是预期的还是意外的?是否是预期的行为(因为两者都在一个表达式上失败)?我应该如何更新测试用例,用上面的代码中的场景进行相等性检查有没有更好的方法?感谢您阅读本文并感谢您的任何建议!

0 投票
4 回答
7561 浏览

java - Assert List 仅包含一个使用 AssertJ 的类的实例

我可以以某种方式使用 AssertJ 断言 List 只有一个(子)类的实例吗?