问题标签 [dart-unittest]

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 回答
1078 浏览

dart - Dart 如何模拟一个过程

我如何去模拟一个过程(与函数相对,请参见此处

例如,给定以下 typedef 和过程,

您如何编写一个模拟来测试 userAdder 过程是否调用了您的模拟函数?

这是我的尝试,但它失败并显示测试失败的消息:Caught The null object does not have a method 'call'。

如果我改变

方法调用没有出现在日志中

0 投票
2 回答
1308 浏览

dart - Dart - 流事件超时的单元测试

这是我在尝试对流进行单元测试时遇到的问题的一个非常简化的版本。

测试检查是否已将正确的事件添加到流中 - 它似乎工作正常 - 例如,将值更改add( 'test')add( 'test2')将使测试失败。

但是当您注释掉该行fireKeepAliveMessage(message);以便事件不会抛出时,单元测试将永远运行。

如何在测试中添加某种超时?或者有没有更好的方法来解决这个问题?

0 投票
1 回答
158 浏览

dart - Dart unittest 产生无用的输出

我正在完成 AngularDart 教程,并在完成练习时尝试编写单元测试。

我有一个看起来像这样的测试:

测试失败,输出如下:

我尝试修改“categoryFilter”的现有测试以使其失败,并且得到相同但无用的输出。

有没有办法让两个对象的比较输出更有意义?

0 投票
1 回答
610 浏览

mocking - 用 Dart 模拟

我一直在尝试了解 dart 中的模拟库,但似乎我仍然没有得到它。

在我的库中,我有一个对外部资源的 HTTP 请求,我想模拟它以不一直依赖外部资源。

我的库中的主类如下所示:

所以我已经准备好我的班级接收 http.client 作为参数,因为这是我想模拟的。

所以在我创建的单元测试文件中:

在我的单元测试中,我完成了:

然后,我希望每次从我的库中调用“send”时,它已在我的单元测试中使用可选的“httpClient”实例化,它会返回“这是一个测试”。我很确定我在这里遗漏了一些非常大的东西,但不能完全确定是什么。

任何帮助表示赞赏。

0 投票
4 回答
4808 浏览

mocking - 使用 Dart 模拟 HTTP 响应

我一直在研究新的 API 包装器,并且不想在每次运行单元测试时都调用 API。因此,如此处所述,我在嘲笑它。

我最初认为我嘲笑它的方式有问题,但似乎问题出在其他地方。

我想要完成的事情非常简单。当我的单元测试运行时,我想返回一个值,就好像我已经出去从我正在集成的外部 API 中获取信息一样。

我使用 http.Client 作为可选参数来初始化我的类,因此我可以在单元测试运行时将其传入:

在我的单元测试中,我创建了以下模拟类:

在我的单元测试中检查响应我正在执行以下操作:

所以,正如你所看到的,我正在努力做到这一点,所以调用 send 返回message401,这只是一个JSON字符串。

这没有发生,因为message401它是一个字符串,并且因为我的代码试图将它用作 Future,所以我总是得到错误:

顶级未捕获错误:类“String”没有实例方法“then”。

我完全理解为什么会出现此错误,但不知道如何解决它。

任何帮助表示赞赏。

0 投票
0 回答
185 浏览

dart - Dart 如何对一个简单的函数进行单元测试

我喜欢你可以在 Dart 中编写干净简洁的代码的方式,但似乎 Dart 是一种易于编写但难以测试的语言!

例如,给定以下相当简单的方法,如何进行单元测试?

您需要以某种方式将new Router()替换为某种返回模拟的工厂方法。然后,当调用serve时,mock 需要返回一个 mock 。然后需要有一个返回模拟流的模拟 transform* 方法……到那时大多数人会放弃!

我已经设法使用上述方法编写了一个单元测试,但由于它需要 80 多行并且用工厂方法污染了实际类,我很难说我对它很满意!

有没有更好的方法来做到这一点?

0 投票
1 回答
64 浏览

unit-testing - 编写 unittest 并保存在单独的文件夹中

我正在尝试为我的班级编写单元测试。首先,我安装了 unittest 包并创建了一个 spec 文件夹来保存我所有的 unittest 文件。然后我创建一个包含以下内容的测试飞镖文件:

当我运行文件时,出现以下错误

正如我所提到的,我将我的 unittest 文件保存在 spec 文件夹中,我认为这是因为编译器找不到包 unittest。
我的文件夹结构如下所示:
在此处输入图像描述

我错了什么?

0 投票
0 回答
41 浏览

dart - 为什么 solo_group 不将其称为 setUp 方法

我正在使用 schedule_test 来测试我的 Polymer Dart 元素。这很好用,直到我尝试使用solo_group()。我的测试依赖于被调用的 setUp() 方法,但是当使用 solo_group() 时,不会调用 setUp() 方法。我的测试,可以理解的失败,抛出关于空值的错误。是否有一个原因?我尝试使用solo_test() 代替,这正如我预期的那样工作,调用setUp() 方法,它应该调用,但不是solo_group。

我感觉到另一个错误报告,但我想在此之前确认这不是预期的行为。

{UPDATE} 如所要求的,这是一个示例,它不是所有的测试代码,但应该足够了。在此示例中,我希望调用 setUp() 方法,但事实并非如此。但是,如果我将 solo_group 转为仅组,则可以。如果将 test() 替换为 solo_test(),并且将 solo_group() 替换为 group(),也会调用 setUp()。

0 投票
1 回答
153 浏览

dart - 在 Dart 单元测试中访问 DOM

我正在尝试为 Pirate Badge 教程编写一个测试,旨在让人们开始使用 Dart。

我有以下目录结构:

带测试的海盗徽章项目结构

6-piratebadge 中的代码是教程中的原始版本。

我添加的是测试包。

test/test.html 包含:

和 test/test.dart 包含:

我从 web 上面的目录中运行这样的测试:

我得到“错误:脚本错误”。(我故意不使用 --dump-render-tree 所以我可以在启动的浏览器的控制台中检查输出)。它的本质似乎是这个消息:

这发生在 piratebadge.dart 的这些行中:

所以我猜没有找到 ID 为“inputName”的输入。

它在piratebadge.html中:

知道我做错了什么吗?

0 投票
1 回答
1288 浏览

dart - 如何模拟服务器响应 - 服务器端的客户端

我正在尝试飞镖,我正在服务器端编写一个客户端:

我想模拟服务器响应。

什么是最好的解决方案?

  • 在我的测试类中创建一个服务器,它将返回我期望的值?
  • 或模拟 HttpClientResponse ?

谢谢你的帮助 !(代码将不胜感激;D)