问题标签 [atunit]

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 投票
3 回答
5594 浏览

unit-testing - 我如何让 Guice 和 TestNg 一起玩,a-la-AtUnit 风格

我使用 TestNG 进行单元和集成测试,使用 Guice 进行 DI。我想像对待其他类一样对待我的测试类——而不是直接使用注入器,我宁愿定义用@Inject 标记的字段,并在每次测试之前将它们注入。

有没有这样的框架?我相信AtUnit做了类似的事情,但我不确定它是如何与 TestNG 集成的,也不知道它有多成熟。

0 投票
1 回答
313 浏览

guice - AtUnit 和 guice 模块覆盖

我想用

对于测试用例,这样我就可以继承所有生产绑定并覆盖它们以进行测试(用模拟替换实例)。有没有办法用 AtUnit 做到这一点。实现模块在设计中似乎很奇怪,因为我认为我们只想继承所有生产绑定并模拟所需的绑定,但除了让测试实现模块之外,也许还有第二种方法。

也许有一种方法可以注释 AtUnit 告诉 AtUnit 测试用例中的生产模块,然后在测试用例中配置以获得 TestModule 覆盖?有这样的方法吗?

谢谢,院长

0 投票
1 回答
476 浏览

testing - 检票口和 AtUnit

我已经开始使用 Wicket 并且选择了Guice作为依赖注入框架。现在我正在尝试学习如何为 WebPage 对象编写单元测试。

我用谷歌搜索了一下,找到了这篇文章,但它提到了 AtUnit,所以我决定试一试。

我的网页类看起来像这样

我创建了 mock 以用它替换任何生产 MyServiceImpl ,我猜与 AtUnit 一起使用的 Guice 应该注入它。

现在的问题是:

  1. AtUnit 期望我用 @Unit 标记目标对象 - 没关系,因为我可以将已经创建的对象传递给 WicketTester

    但通常我会用类名调用 startPage 。

  2. 我认为 AtUnit 也期望目标对象是带有 @Inject 的市场,因此 AtUnit 可以创建和管理它 - 但我得到一个org.apache.wicket.WicketRuntimeException: There is no application attach to current thread main。我可以指示 AtUnit 使用来自 wicketTester 的应用程序吗?

  3. 因为我不在 MyWebPage 上使用 @Inject(我认为)所有应该由 Guice 注入的对象都是空的(在我的示例中,服务引用是空的)

我真的在 Wicket 环境中找不到任何关于 AtUnit 的信息。我做错了什么,我错过了什么吗?