Questions tagged «unit-testing»

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

4
断言在Visual Studio 2008测试框架中数组相等
有没有一种简单的方法可以在单元测试中检查两个数组是否相等(即,具有相同数量的元素,并且每个元素都相同?)。 在Java中,我会使用assertArrayEquals (foo, bar);,但是C#似乎没有等效的东西。我试过了Assert.AreEqual(new string[]{"a", "b"}, MyFunc("ab"));,但是即使函数返回带有“ a”,“ b”的数组,检查仍然失败 这是使用带有内置单元测试框架的Visual Studio 2008 Team Suite。

1
如何在ERB中转义ERB标签
我有一个简单的fixture.yml文件: label: body: "<%= variable %>" 问题在于,ERB代码是作为加载固定装置的一部分而解析的,而我实际上希望将主体按字面意思是“ <%=变量%>”(未插值)。 如何逃脱ERB标签?

13
有没有办法让Chai使用异步Mocha测试?
我正在使用浏览器运行程序在Mocha中运行一些异步测试,并且尝试使用Chai的Expect样式声明: window.expect = chai.expect; describe('my test', function() { it('should do something', function (done) { setTimeout(function () { expect(true).to.equal(false); }, 100); } } 这不会给我正常的失败断言消息,相反,我得到: Error: the string "Uncaught AssertionError: expected true to equal false" was thrown, throw an Error :) at Runner.fail (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3475:11) at Runner.uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3748:8) at uncaught (http://localhost:8000/tests/integration/mocha/vendor/mocha.js:3778:10) 因此,显然是在捕获错误,只是没有正确显示它。任何想法如何做到这一点?我想我可以用一个错误对象调用“完成”,但是然后我失去了像柴一样的优雅,它变得笨拙...


7
对于一组自动化测试,只运行一次setUp
我的Python版本是2.6。 我只想执行一次test setUp方法,因为我在那里执行了所有测试所需的操作。 我的想法是创建一个布尔变量,该变量在第一次执行后将设置为“ true”,然后禁用对setup方法的多个调用。 class mySelTest(unittest.TestCase): setup_done = False def setUp(self): print str(self.setup_done) if self.setup_done: return self.setup_done = True print str(self.setup_done) 输出: False True --- Test 1 --- False True --- Test 2 --- 为什么这不起作用?我有想念吗?


3
如何在每次测试之前重置Jest模拟功能调用计数
我是Jest的新手,我正在尝试将其用于测试是否调用了函数。我注意到对ock.calls.length来说并不是每次测试都会重置,而是不断积累。每次测试前如何将其设置为0?我不希望我的下一个测试取决于上一个的结果。 我知道Jest中有beforeEach-我应该使用它吗?重置模拟的最佳方法是什么?calls.length?谢谢。 一个代码示例: Sum.js: import local from 'api/local'; export default { addNumbers(a, b) { if (a + b <= 10) { local.getData(); } return a + b; }, }; Sum.test.js import sum from 'api/sum'; import local from 'api/local'; jest.mock('api/local'); // For current implementation, there is a difference // if I …

13
此版本使用了不推荐使用的Gradle功能,使其与Gradle 5.0不兼容
我有一个失败的失败: ..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0." 案例说明: 将以下库附加到项目代码库: APP / build.gradle //(Required) Writing and executing Unit Tests on the JUnit Platform testImplementation "org.junit.jupiter:junit-jupiter-api:5.2.0" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.2.0" // (Optional) If you need "Parameterized Tests" testImplementation "org.junit.jupiter:junit-jupiter-params:5.2.0" // (Optional) If you also have JUnit …


7
如何从“ python setup.py测试”运行unittest发现?
我试图弄清楚如何python setup.py test运行python -m unittest discover。我不想使用run_tests.py脚本,也不想使用任何外部测试工具(例如nose或py.test)。如果解决方案仅适用于python 2.7,就可以了。 在中setup.py,我想我需要在config的test_suiteand和/或test_loader字段中添加一些内容,但是我似乎找不到能正常工作的组合: config = { 'name': name, 'version': version, 'url': url, 'test_suite': '???', 'test_loader': '???', } 只能使用unittestpython 2.7内置的功能吗? 仅供参考,我的项目结构如下: project/ package/ __init__.py module.py tests/ __init__.py test_module.py run_tests.py <- I want to delete this setup.py 更新:这可能与unittest2但我想只使用unittest 来自https://pypi.python.org/pypi/unittest2 unittest2包括一个非常基本的setuptools兼容测试收集器。在setup.py中指定test_suite ='unittest2.collector'。这将从包含setup.py的目录中的默认参数开始测试发现,因此,它可能是最有用的示例(请参阅unittest2 / collector.py)。 目前,我仅使用一个名为的脚本run_tests.py,但希望通过移至仅使用的解决方案来摆脱这种情况python setup.py test。 这是run_tests.py我希望删除的: …

4
是否有茉莉花匹配器来比较对象的属性子集
我有一个对象可以沿我的测试行为扩展,但是我想确保原始属性仍然存在。 var example = {'foo':'bar', 'bar':'baz'} var result = extendingPipeline(example) // {'foo':'bar', 'bar':'baz', 'extension': Function} expect(result).toEqual(example) //fails miserably 我想要一个匹配器,在这种情况下可以通过: expect(result).toInclude(example) 我知道我可以编写一个自定义匹配器,但是在我看来,这是一个普遍的问题,应该已经有解决方案了。我应该在哪里寻找?

2
如何查看在Django的manage.py test命令期间运行了哪些测试
使用Django的manage.py test命令完成测试执行后,只有通过测试的数量会打印到控制台。 (virtualenv) G:\Project\>python manage.py test Creating test database for alias 'default'... True .. ---------------------------------------------------------------------- Ran 2 tests in 0.017s OK Destroying test database for alias 'default'... 有什么办法看: 实际执行了哪些测试 从哪个模块 以什么顺序 我尚未在文档中找到任何解决方案。

1
从装饰器访问自我
在unittest的setUp()方法中,我设置了一些自变量,稍后将在实际测试中引用它们。我还创建了一个装饰器来进行一些日志记录。有没有一种方法可以从装饰器访问这些自变量? 为了简单起见,我将发布此代码: def decorator(func): def _decorator(*args, **kwargs): # access a from TestSample func(*args, **kwargs) return _decorator class TestSample(unittest.TestCase): def setUp(self): self.a = 10 def tearDown(self): # tear down code @decorator def test_a(self): # testing code goes here 什么是访问的最好办法一个从装饰(()在设置中设定)?

2
开玩笑:第三方库使用控制台时如何模拟控制台?
我正在尝试模拟console.warn / error,但我不能。我使用了一个第三方库,该库在其中调用console.warn。我需要测试它是否被调用。在我的测试用例中,我试图对console.warn进行存根处理,但这没有帮助。之后,我尝试手动模拟控制台,但也没有解决。 console.warn = jest.fn(); testSchema('/app/components/Users/UserItem/UserItemContainer.js'); expect(console.warn).toBeCalled(); 没用 console.warn = jest.fn(); testSchema('/app/components/Users/UserItem/UserItemContainer.js'); console.warn('error'); expect(console.warn).toBeCalled(); 做过。但是我仍然console.warn node_modules/babel-relay-plugin/lib/getBabelRelayPlugin.js:138在终端中看到。谁能帮我?

8
将单元测试添加到旧代码中
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 事后,您是否曾经将单元测试添加到旧代码中?代码有多复杂,存根和模拟一切有多难?最终结果值得吗?

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.