Questions tagged «unit-testing»

单元测试是一种测试源代码的各个单元以确定它们是否适合使用的方法。

16
酶-如何访问和设置<input>值?
我对使用&lt;input&gt;时如何获取价值感到困惑mount。这是我的测试内容: it('cancels changes when user presses esc', done =&gt; { const wrapper = mount(&lt;EditableText defaultValue="Hello" /&gt;); const input = wrapper.find('input'); console.log(input.render().attr('value')); input.simulate('focus'); done(); }); 控制台将输出undefined。但是,如果我稍微修改一下代码,它就会起作用: it('cancels changes when user presses esc', done =&gt; { const wrapper = render(&lt;EditableText defaultValue="Hello" /&gt;); const input = wrapper.find('input'); console.log(input.val()); input.simulate('focus'); done(); }); 当然,除了那input.simulate行因为我现在正在使用而失败render。我都需要正常工作。我该如何解决? 编辑: …

4
您可以向AssertJ assertThat添加自定义消息吗?
我们有一个测试套件,主要使用带有Hamcrest匹配器的JUnit断言。我们的一个团队开始对AssertJ进行实验,并以其语法,灵活性和声明性给人留下了深刻的印象。JUnit提供的一项功能是我无法在AssertJ中找到与之等效的功能:添加自定义断言失败消息。 我们经常在比较不是为了人类可读性而制成的对象,这些对象将具有随机寻找的Id或UUID,并且无法通过包含的数据来判断它们应该是什么。不幸的是,对于我们的代码库来说,这是不可避免的情况,因为它实现的目的之一就是在其他服务之间映射数据而不必了解它是什么。 在JUnit中,该assertThat方法在String reason参数之前提供一个带有参数的版本Matcher&lt;T&gt;。这使得添加简短的调试字符串变得轻而易举,从而避免了对该问题的一些了解,例如,比较对人类意味着什么。 另一方面,AssertJ提供了十亿种不同的通用static assertThat方法,这些方法返回某种形式的接口Assert或其许多实现类之一。此接口不提供设置失败时包括的自定义消息的标准方法。 有什么方法可以从AssertJ API或其扩展之一中获得此功能,而不必为要向其添加消息的每个断言类型创建自定义断言类?


21
PHPUnit-使用配置文件时“未执行测试”
问题 为了提高代码质量,我决定尝试学习如何使用单元测试而不是平庸的最佳测试解决方案来测试代码。 我决定使用composer为个人库安装PHPUnit,这使我可以实现常见的数据库功能。最初,我没有用于PHPUnit的配置文件,当我运行以下命令时: $ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest 请注意,这是一个终端命令,因此未包含.php扩展名。上面提到的GeneralStringFunctionsTest实际上是一个GeneralStringFunctionsTest.php文件。 输出是我期望的: 时间:31毫秒,内存:2.75Mb OK(1个测试,1个断言) 然后,我尝试使用配置文件自动加载测试套件,而不必每次都手动输入文件。我phpunit.xml在根目录中创建了一个名为的文件,并将以下内容输入到该文件中:http : //pastebin.com/0j0L4WBD: &lt;?xml version = "1.0" encoding="UTF-8" ?&gt; &lt;phpunit&gt; &lt;testsuites&gt; &lt;testsuite name="Tests"&gt; &lt;directory&gt;tests&lt;/directory&gt; &lt;/testsuite&gt; &lt;/testsuites&gt; &lt;/phpunit&gt; 现在,当我运行命令时: phpunit 我得到以下输出: Sebastian Bergmann和贡献者的PHPUnit 4.5.0。 从/Users/muyiwa/Projects/DatabaseHelper/phpunit.xml中读取配置 时间:16毫秒,内存:1.50Mb 没有执行测试! 如果有帮助,我的目录结构如下: src-顶级目录(包含所有源代码) 测试-顶级目录(包含所有测试,结构与src文件夹相同) 供应商-Composer第三方文件 我也有composer json和lock文件,以及顶层phpunit xml文件。 我尝试过的事情 将目录更改phpunit.xml为tests/GeneralStringFunctions 将目录更改phpunit.xml为./tests 将phpunit.xml文件移动到tests目录,然后将目录更改为./而不是tests。 在目录标记中添加后缀属性,phpunit.xml以将“ Tests”指定为显式后缀。

6
在ASP.NET Core中模拟IPrincipal
我有一个正在为其编写单元测试的ASP.NET MVC Core应用程序。一种操作方法使用用户名来实现某些功能: SettingsViewModel svm = _context.MySettings(User.Identity.Name); 显然在单元测试中失败了。我环顾四周,所有建议均来自.NET 4.5以模拟HttpContext。我相信有更好的方法可以做到这一点。我试图注入IPrincipal,但是抛出了错误。我什至尝试了一下(我想是出于绝望): public IActionResult Index(IPrincipal principal = null) { IPrincipal user = principal ?? User; SettingsViewModel svm = _context.MySettings(user.Identity.Name); return View(svm); } 但这也引发了错误。在文档中也找不到任何内容...

17
您的单元测试有多深?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我发现的有关TDD的事情是,它需要花费一些时间来设置您的测试,并且自然而然地变得懒惰,我一直想编写尽可能少的代码。我似乎要做的第一件事是测试我的构造函数是否设置了所有属性,但是这太过分了吗? 我的问题是编写单元测试的粒度级别是多少? ..是否有太多测试案例?
88 unit-testing  tdd 

6
JUnit 4与TestNG-更新2013-2014 [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 JUnit 4和TestNG曾经具有可比性。这两个测试框架的优缺点是什么?

4
如何在Github中显示我的测试通过/失败?
我在github上有一个项目,该项目具有广泛的单元测试(将mocha用于node.js)。 我想通过在每个页面上显示通过/失败的测试来炫耀。我注意到Github上的其他项目正在这样做。 我一直找不到任何有关如何显示测试状态的文档。 如何使Github显示单元测试输出? Github是否运行测试,还是需要连接外部Web应用程序? 是否有免费的Web服务来执行此操作(我的应用程序是“开源”)?

4
模拟回调和获取参数值
我没有运气让Mockito捕获函数参数值!我在模拟搜索引擎索引,而不是建立索引,而是使用哈希。 // Fake index for solr Hashmap&lt;Integer,Document&gt; fakeIndex; // Add a document 666 to the fakeIndex SolrIndexReader reader = Mockito.mock(SolrIndexReader.class); // Give the reader access to the fake index Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666)) 我不能使用任意参数,因为我正在测试查询的结果(即查询返回的文档)。同样,我不想为每个文档指定特定值,也不想为每个文档都指定一行! Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0)) Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1)) .... Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n)) 我查看了“使用Mockito”页面上的回调部分。不幸的是,它不是Java,我无法对此做出自己的解释才能在Java中工作。 编辑(为澄清起见):如何获取Mockito捕获参数X并将其传递给我的函数?我想要传递给函数的X的确切值(或ref)。 我不想列举所有情况,并且任意参数将不起作用,因为我正在测试不同查询的不同结果。 Mockito页面上说 val mockedList = mock[List[String]] mockedList.get(anyInt) answers { i =&gt; "The parameter …



2
如何使用MSTest测试异步代码
我正在写一些超级简单的异步代码。只是将文件保存在线程外。 我想使用Microsoft Visual Studio Team System 2008中的MSTest单元测试框架来测试此代码。 我该怎么做呢? 我想简单地阻塞测试方法,直到方法返回。我可以想象有一些方法可以做到这一点,但我为此感到震惊,没有任何最佳实践或帮助程序类。 我对Silverlight看到了很多,但没有什么通用的。

6
使用mocha.js加入来自多个文件的测试
我试图将来自多个文件的所有测试合并到一个文件中,如下所示: describe('Controllers', function() { describe('messages.js', function() { require('./controllertests/messages').test(options); }) describe('users.js', function() { require('./controllertests/users').test(options); }) }) 我很确定这不是参加测试的最佳方法,我很难理解如何执行此操作的示例:



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.