Questions tagged «unit-testing»

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

4
使用@Input()进行Angular2单元测试
我有一个@Input()在实例变量上使用注解的组件,我正在尝试为该openProductPage()方法编写单元测试,但是我对设置单元测试的方式有些迷惑。我可以将该实例变量设置为公共变量,但是我认为我不必诉诸于此。 如何设置茉莉花测试,以便注射(提供?)模拟产品,然后可以测试该openProductPage()方法? 我的组件: import {Component, Input} from "angular2/core"; import {Router} from "angular2/router"; import {Product} from "../models/Product"; @Component({ selector: "product-thumbnail", templateUrl: "app/components/product-thumbnail/product-thumbnail.html" }) export class ProductThumbnail { @Input() private product: Product; constructor(private router: Router) { } public openProductPage() { let id: string = this.product.id; this.router.navigate([“ProductPage”, {id: id}]); } }

5
EasyMock:无效方法
我有一个方法,该方法在要测试的类的依赖项的类中返回void。 此类非常庞大,我仅使用其中的一种方法。我需要替换该方法的实现以进行测试,因为我希望它做一些不同的事情,并且需要能够访问该方法接收的参数。 我在EasyMock中找不到做到这一点的方法。我想我知道如何使用Mockito做到这一点,doAnswer但是除非绝对必要,否则我不想添加其他库。

3
Unittest的assertEqual和Iterables-仅检查内容
单元测试中是否有“体面”的方法来检查两个可迭代对象的内容是否相等?我使用了很多元组,列表和numpy数组,我通常只想测试内容而不是类型。目前,我只是在强制转换类型: self.assertEqual (tuple (self.numpy_data), tuple (self.reference_list)) 我前一段时间使用此列表理解: [self.assertEqual (*x) for x in zip(self.numpy_data, self.reference_list)] 但是该解决方案似乎不如类型转换,因为它仅在失败时打印单个值,并且对于不同长度的引用和数据也不会失败(由于zip功能)。

2
Eclipse的PHP混乱检测器
我安装了PTI Eclipse插件。 有可能进行更改PDepend,CodeSniffer并且UnitTest 当我尝试右键单击任何文件时,我也有一个Mess Detector选项,但是单击该文件时没有任何反应。在搜索所有配置选项后,我也找不到的任何设置PHPMD。 有人知道如何解决吗?

9
单元测试的线程安全性?
我已经编写了一个类和许多单元测试,但没有使它成为线程安全的。现在,我想使类线程安全,但是要证明它并使用TDD,我想在开始重构之前编写一些失败的单元测试。 有什么好办法吗? 我的第一个想法就是创建几个线程,并使它们全部以不安全的方式使用该类。用足够的线程执行此操作足够的时间,我一定会看到它破裂。

5
让requirejs与Jasmine一起使用
我首先要说的是,我是RequireJS的新手,甚至是茉莉花的新手。 我在SpecRunner上遇到一些问题,需要JS。我一直在关注Uzi Kilon和Ben Nadel(以及其他一些人)的教程,它们对一些人有所帮助,但是我仍然遇到一些问题。 看来,如果测试中抛出错误(我可以特别想到一个错误,即类型错误),则将显示spec运行器html。这告诉我,javascript中存在一些问题。但是,修复这些错误后,不再显示HTML。 我根本无法显示测试运行程序。有人可以发现我的代码有问题导致此问题吗? 这是我的目录结构: Root |-> lib |-> jasmine |-> lib (contains all of the jasmine lib) |-> spec |-> src |-> jquery (jquery js file) |-> require (require js file) index.html (spec runner) specRunner.js 这是SpecRunner(索引)HTML: <!doctype html> <html lang="en"> <head> <title>Javascript Tests</title> <link rel="stylesheet" href="lib/jasmine/lib/jasmine.css"> <script …

3
Moq'ing方法,其中Expression <Func <T,bool >>作为参数传递
我是单元测试和模拟的新手!我正在尝试编写一些单元测试,其中涉及与数据存储交互的一些代码。数据访问由IRepository封装: interface IRepository&lt;T&gt; { .... IEnumerable&lt;T&gt; FindBy(Expression&lt;Func&lt;T, bool&gt;&gt; predicate); .... } 我尝试使用IRepository的IoC具体实现来测试的代码如下: public class SignupLogic { private Repository&lt;Company&gt; repo = new Repository&lt;Company&gt;(); public void AddNewCompany(Company toAdd) { Company existingCompany = this.repo.FindBy(c =&gt; c.Name == toAdd.Name).FirstOrDefault(); if(existingCompany != null) { throw new ArgumentException("Company already exists"); } repo.Add(Company); repo.Save(); } } 为了测试SignupLogic.AddNewCompany()本身的逻辑,而不是逻辑和具体的存储库,我在模拟IRepository并将其传递给SignupLogic。模拟的存储库如下所示: …
67 c#  unit-testing  moq 

3
Mockito嘲笑本地决赛,但在詹金斯失败
我已经为静态方法编写了一些单元测试。静态方法仅接受一个参数。参数的类型是最终类。在代码方面: public class Utility { public static Optional&lt;String&gt; getName(Customer customer) { // method's body. } } public final class Customer { // class definition } 因此,对于Utility该类,我创建了一个测试类,UtilityTests在其中为该方法编写了测试getName。单元测试框架为TestNG,而使用的模拟库为Mockito。因此,典型的测试具有以下结构: public class UtilityTests { @Test public void getNameTest() { // Arrange Customer customerMock = Mockito.mock(Customer.class); Mockito.when(...).thenReturn(...); // Act Optional&lt;String&gt; name = Utility.getName(customerMock); // Assert …

1
如何在Vue Composition API组件中使用Jest进行单元测试?
我正在为vue.js中的composition API组件开玩笑地编写单元测试。 但是我无法访问Composition API的setup()中的函数。 指标值 &lt;template&gt; &lt;div class="d-flex flex-column justify-content-center align-content-center"&gt; &lt;ul class="indicator-menu d-flex justify-content-center"&gt; &lt;li v-for="step in steps" :key="step"&gt; &lt;a href="#" @click="updateValue(step)" :class="activeClass(step, current)"&gt; &lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;div class="indicator-caption d-flex justify-content-center"&gt; step &lt;span&gt; {{ current }}&lt;/span&gt; from &lt;span&gt; {{ steps }}&lt;/span&gt; &lt;/div&gt; &lt;/div&gt; &lt;/template&gt; &lt;script lang="ts"&gt; import {createComponent} from …
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.