Questions tagged «unit-testing»

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

4
断言对象是特定类型
在JUnit中是否可以断言一个对象是一个类的实例?由于各种原因,我在测试中有一个要检查其类型的对象。它是Object1还是Object2? 目前我有: assertTrue(myObject instanceof Object1); assertTrue(myObject instanceof Object2); 这行得通,但我想知道是否有一种更具表现力的方式来做到这一点。 例如: assertObjectIsClass(myObject, Object1); 我可以这样做: assertEquals(myObject.class, Object1.getClass()); 有没有一种特定的assert方法,可以让我以更优雅,更流畅的方式测试对象的类型?
195 java  unit-testing  junit 

12
如何使用Jasmine为私有方法编写Angular / TypeScript的单元测试
如何在angular 2中测试私有函数? class FooBar { private _status: number; constructor( private foo : Bar ) { this.initFooBar(); } private initFooBar(){ this.foo.bar( "data" ); this._status = this.fooo.foo(); } public get status(){ return this._status; } } 我找到的解决方案 将测试代码本身放在闭包内,或将添加代码放在闭包内,用于存储对外部作用域中现有对象的局部变量的引用。 稍后使用工具剥离测试代码。 http://philipwalton.com/articles/how-to-unit-test-private-functions-in-javascript/ 如果您做过任何事情,请给我建议解决这个问题的更好方法? 聚苯乙烯 大多数类似问题的答案都无法解决问题,这就是为什么我要问这个问题 大多数开发人员都说您不测试私有功能,但我不是说它们是对还是错,但是我的案例有必要测试私有功能。

4
使用Mockito的通用“ any()”方法
我有一个接口,该方法需要一个数组Foo: public interface IBar { void doStuff(Foo[] arr); } 我正在使用Mockito来模拟此接口,我想断言该接口已doStuff()被调用,但是我不想验证传递了什么参数-“无关”。 如何使用any()通用方法而不是编写以下代码anyObject()? IBar bar = mock(IBar.class); ... verify(bar).doStuff((Foo[]) anyObject());

10
TransactionManagementError“使用信号时,您只能在'atomic'块的末尾才能执行查询”,但仅限于单元测试期间
尝试保存Django用户模型实例时,我收到TransactionManagementError,并在其post_save信号中,保存了一些将用户作为外键的模型。 使用信号时,上下文和错误与此问题django TransactionManagementError非常相似 但是,在这种情况下,错误仅在单元测试时发生。 它在手动测试中效果很好,但是单元测试失败。 有什么我想念的吗? 以下是代码片段: views.py @csrf_exempt def mobileRegister(request): if request.method == 'GET': response = {"error": "GET request not accepted!!"} return HttpResponse(json.dumps(response), content_type="application/json",status=500) elif request.method == 'POST': postdata = json.loads(request.body) try: # Get POST data which is to be used to save the user username = postdata.get('phone') password …

30
测试驱动开发的缺点?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 采用测试驱动设计会给我带来什么损失? 仅列出底片;不要列出以负面形式写的福利。

7
双重值的assertEquals的epsilon参数的含义
我有一个关于junit assertEquals来测试double值的问题。阅读API文档,我可以看到: @Deprecated public static void assertEquals(double expected, double actual) 不推荐使用。改用assertEquals(期望值翻倍,实际值翻倍,epsilon翻倍) 该epsilon值是什么意思?(Epsilon是希腊字母中的一个字母,对吗?)。 有人可以向我解释如何使用它吗?
187 java  unit-testing  junit 

7
如何访问和测试node.js模块中的内部(非导出)功能?
我试图弄清楚如何在nodejs(最好是用mocha或jasmine)中测试内部(即不导出)功能。而且我不知道! 假设我有一个类似的模块: function exported(i) { return notExported(i) + 1; } function notExported(i) { return i*2; } exports.exported = exported; 和以下测试(摩卡): var assert = require('assert'), test = require('../modules/core/test'); describe('test', function(){ describe('#exported(i)', function(){ it('should return (i*2)+1 for any given i', function(){ assert.equal(3, test.exported(1)); assert.equal(5, test.exported(2)); }); }); }); 有什么方法可以对notExported功能进行单元测试而不实际导出功能,因为它不是要公开的?

14
在单元测试中设置HttpContext.Current.Session
我有一个要尝试进行单元测试的Web服务。在服务中,它从HttpContext类似的方法中提取几个值,如下所示: m_password = (string)HttpContext.Current.Session["CustomerId"]; m_userID = (string)HttpContext.Current.Session["CustomerUrl"]; 在单元测试中,我正在使用简单的工作程序请求创建上下文,如下所示: SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter()); HttpContext context = new HttpContext(request); HttpContext.Current = context; 但是,每当我尝试设置 HttpContext.Current.Session HttpContext.Current.Session["CustomerId"] = "customer1"; HttpContext.Current.Session["CustomerUrl"] = "customer1Url"; 我得到的null引用异常HttpContext.Current.Session为null。 有什么办法可以在单元测试中初始化当前会话?

20
如何对Arduino代码进行单元测试?
我希望能够对Arduino代码进行单元测试。理想情况下,我将能够运行任何测试,而无需将代码上传到Arduino。哪些工具或库可以帮助我解决此问题? 开发中有一个Arduino仿真器可能很有用,但似乎尚未准备就绪。 Atmel的AVR Studio包含一个可能有用的芯片模拟器,但是我看不到如何将其与Arduino IDE结合使用。

6
为什么单元测试中的代码无法找到包资源?
我正在单元测试中的某些代码需要加载资源文件。它包含以下行: NSString *path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"txt"]; 在应用程序中,它运行得很好,但是当由单元测试框架运行时pathForResource:返回nil,这意味着它无法定位foo.txt。 我已经确保它foo.txt包含在单元测试目标的“ 复制捆绑资源”构建阶段中,那么为什么找不到文件?

30
找不到类:IntelliJ中的空测试套件
我刚刚在我的大学开始计算机科学计划,而IntelliJ遇到了一些问题。当我尝试运行单元测试时,我收到消息 Process finished with exit code 1 Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite. 我还在屏幕左侧看到一条消息,标题为“未找到测试”。我的测试代码在这里: package edu.macalester.comp124.hw0; import org.junit.Test; import static org.junit.Assert.*; public class AreaTest { @Test public void testSquare() { assertEquals(Area.getSquareArea(3.0), 9.0, 0.001); } @Test public void testCircle() { assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001); } } 我的项目代码在这里: package edu.macalester.comp124.hw0; import java.lang.Math; public …


4
配置IntelliJ IDEA以使用JUnit进行单元测试
我决定今天早上通过试用版试用IntelliJ,并安装了JUnit插件。我创建了一个新的Java项目,并希望为其编写测试用例。 如何将junit.jar文件添加到我的项目中?(实际上,我现在想将其添加到每个Java项目中,甚至永远添加到更多的对象中-有这样做的方法吗?)。

7
如何在单元测试中比较列表
该测试如何失败? [TestMethod] public void Get_Code() { var expected = new List<int>(); expected.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 }); var actual = new List<int>(); actual.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 }); Assert.AreEqual(expected, actual); // Assert.AreSame(expected, actual) fails // Assert.IsTrue(expected.Equals(actual)) fails }

13
我如何等待异步调度的块完成?
我正在测试一些使用Grand Central Dispatch进行异步处理的代码。测试代码如下: [object runSomeLongOperationAndDo:^{ STAssert… }]; 测试必须等待操作完成。我当前的解决方案如下所示: __block BOOL finished = NO; [object runSomeLongOperationAndDo:^{ STAssert… finished = YES; }]; while (!finished); 哪个看起来有些粗糙,您知道更好的方法吗?我可以公开队列,然后通过调用来阻塞dispatch_sync: [object runSomeLongOperationAndDo:^{ STAssert… }]; dispatch_sync(object.queue, ^{}); …但这可能会使曝光量过多object。

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.