Questions tagged «unit-testing»

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

12
在Android Studio中运行参数化单元测试时,找不到给定的测试包含错误
我尝试在Android Studio中按以下方式运行参数化单元测试。 import android.test.suitebuilder.annotation.SmallTest; import junit.framework.TestCase; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) @SmallTest public class FibonacciTest extends TestCase { @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { {0, 0}, {1, 1}, {2, 1}, {3, 2}, {4, 3}, …

12
断言失败时继续执行Python的单元测试
编辑:切换到一个更好的示例,并阐明了为什么这是一个真正的问题。 我想用Python编写在断言失败时继续执行的单元测试,这样我就可以在一个测试中看到多个失败。例如: class Car(object): def __init__(self, make, model): self.make = make self.model = make # Copy and paste error: should be model. self.has_seats = True self.wheel_count = 3 # Typo: should be 4. class CarTest(unittest.TestCase): def test_init(self): make = "Ford" model = "Model T" car = Car(make=make, model=model) self.assertEqual(car.make, make) …

12
是否有用于Java的伪造文件系统框架?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 去年关闭。 改善这个问题 我将在一个大量使用IO操作(在这种情况下为文件系统)的项目中引入测试。系统会不断打开/关闭文件,检查文件是否存在,将其删除等等。 很快变得显而易见的是,常规的模拟并没有太大用处,因为这会使我的测试难以设置和推理。另一方面,拥有一个伪造的文件系统会很棒,而且我认为很容易设置。 似乎红宝石家伙又做了一次,正是我在红宝石中要求的:http : //ozmm.org/posts/fakefs.html。 Java有什么远程相似之处吗?

6
Django的self.client.login(...)在单元测试中不起作用
我已经通过两种方式为我的单元测试创​​建了用户: 1)为“ auth.user”创建一个大致如下的灯具: { "pk": 1, "model": "auth.user", "fields": { "username": "homer", "is_active": 1, "password": "sha1$72cd3$4935449e2cd7efb8b3723fb9958fe3bb100a30f2", ... } } 我省略了看似不重要的部分。 2)在setUp函数中使用“ create_user”(尽管我宁愿将所有内容都保存在我的装置类中): def setUp(self): User.objects.create_user('homer', 'ho...@simpson.net', 'simpson') 请注意,两种情况下的密码均为辛普森。 我已验证该信息一次又一次正确地加载到测试数据库中。我可以使用User.objects.get来获取User对象。我可以使用“ check_password”验证密码是否正确。用户处于活动状态。 但是,self.client.login(username ='homer',password ='simpson')总是失败。我对为什么感到困惑。我想我已经阅读了与此相关的每个互联网讨论。有人可以帮忙吗? 我的单元测试中的登录代码如下所示: login = self.client.login(username='homer', password='simpson') self.assertTrue(login) 谢谢。

12
私有/受保护的方法是否应该接受单元测试?
在TDD开发中,通常要做的第一件事是创建接口,然后开始针对该接口编写单元测试。随着TDD过程的进行,您最终将创建一个实现该接口的类,然后在某个时候您的单元测试将通过。 现在,我的问题是关于私有和受保护的方法,我可能必须在类中编写这些方法以支持接口公开的方法/属性: 类中的私有方法是否应该具有自己的单元测试? 类中的受保护方法是否应具有自己的单元测试? 我的想法: 特别是因为我正在对接口进行编码,所以我不必担心受保护/私有方法,因为它们是黑盒。 因为我使用的是接口,所以我正在编写单元测试以验证所定义的约定是否由实现该接口的不同类正确实现,因此我也不必担心私有/受保护的方法,而应该通过调用接口定义的方法/属性。 如果我的代码覆盖率未显示出受保护的/私有方法被击中,则我没有正确的单元测试,或者我的代码未被使用,应删除。
82 unit-testing  tdd 


6
使用django-celery进行单元测试?
我正在为我们的django-celery项目想出一种测试方法。我已经阅读了文档中的注释,但是并没有使我对实际操作有个好主意。我并不担心在实际的守护进程测试任务,只是功能我的代码。我主要是想知道: task.delay()在测试过程中我们如何绕过(我尝试设置,CELERY_ALWAYS_EAGER = True但没有影响)? 在不实际更改settings.py的情况下,我们如何使用建议的测试设置(如果这是最好的方法)? 我们仍然可以使用manage.py test还是必须使用自定义运行器? 总体而言,有关芹菜测试的任何提示或技巧都将非常有帮助。

4
Visual Studio是否具有单元测试的代码覆盖率?
我使用的是Visual Studio 2015社区版,我知道它可以创建用于测试代码的单元测试的选项,但是我看不到用于测试代码覆盖率的选项,因此我想知道Visual Studio是否具有此选项,或者如果我必须使用第三方插件。 如果我必须使用第三方解决方案,那将是一个好选择吗?

8
当前未针对测试操作配置Xcode项目方案
我正在尝试为我的iOS应用程序运行Xcode单元测试。我愿意在通过USB连接到Mac的iPad上进行操作。我正在尝试从命令行运行测试,以便稍后从Jenkins触发它。 以下是我目前在命令行中输入的内容以及出现的错误。请帮忙。 编码: xcodebuild test -scheme MyApplication -destination "platform=iOS,name=iPad" 错误: 当前未为计划操作配置方案MyApplication

10
AssertEquals 2列表忽略顺序
我认为那应该是一个非常简单的问题。但是不知何故我无法在Google中找到答案。 假设我有2个字符串列表。第一个包含“字符串A”和“字符串B”,第二个包含“字符串B”和“字符串A”(注意顺序不同)。我想用JUnit测试它们,以检查它们是否包含完全相同的字符串。 是否有任何断言可以检查忽略顺序的字符串是否相等?对于给定的示例org.junit.Assert.assertEquals抛出AssertionError java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]> 解决方法是先对列表进行排序,然后再将它们传递给断言。但是我希望我的代码尽可能简单和干净。 我使用Hamcrest 1.3,JUnit 4.11,Mockito 1.9.5。

6
Angular ui路由器单元测试(指向网址的状态)
我在应用程序中测试路由器时遇到了一些麻烦,该应用程序基于Angular ui路由器构建。我要测试的是状态转换是否适当地更改了URL(稍后将进行更复杂的测试,但这是我开始的地方。) 这是我的应用程序代码的相关部分: angular.module('scrapbooks') .config( function($stateProvider){ $stateProvider.state('splash', { url: "/splash/", templateUrl: "/app/splash/splash.tpl.html", controller: "SplashCtrl" }) }) 和测试代码: it("should change to the splash state", function(){ inject(function($state, $rootScope){ $rootScope.$apply(function(){ $state.go("splash"); }); expect($state.current.name).to.equal("splash"); }) }) 关于Stackoverflow的类似问题(以及官方ui路由器测试代码)表明,将$ state.go调用包装在$ apply中就足够了。但是我已经做到了,状态仍然没有更新。$ state.current.name保持为空。

4
如何在AngularJS中对隔离范围指令进行单元测试
在AngularJS中对隔离范围进行单元测试的好方法是什么 JSFiddle显示单元测试 指令段 scope: {name: '=myGreet'}, link: function (scope, element, attrs) { //show the initial state greet(element, scope[attrs.myGreet]); //listen for changes in the model scope.$watch(attrs.myGreet, function (name) { greet(element, name); }); } 我想,以确保指令监听的变化-这确实不是工作,一个孤立的范围: it('should watch for changes in the model', function () { var elm; //arrange spyOn(scope, '$watch'); //act elm …

13
程序员如何在项目上一起工作?
我总是一个人编程,我还是一个学生,所以我从来没有和其他人一起编程,我什至没有使用过版本控制系统。 我现在正在从事一个项目,该项目需要了解程序员如何在公司中的某个软件上协同工作。 该软件如何编译?是来自版本控制系统吗?是个人程序员吗?它是周期性的吗?是当某人决定建造时还是其他东西?是否进行了任何测试以确保其“有效”? 一切都会做。

9
Python单元测试中的assertAlmostEqual用于浮点数的集合
Python的单元测试框架中的assertAlmostEqual(x,y)方法在假设和为浮点数的情况下测试和近似相等。xy 问题assertAlmostEqual()在于它仅适用于浮点数。我正在寻找一种类似的方法assertAlmostEqual(),可用于浮点数列表,浮点数集,浮点数字典,浮点数元组,浮点数元组列表,浮点数列表集等。 例如,我们x = 0.1234567890,y = 0.1234567891。x和y几乎相等,因为他们对每一个除了最后一个数字一致。因此self.assertAlmostEqual(x, y)是True因为assertAlmostEqual()适用于彩车。 我正在寻找一种更通用的方法assertAlmostEquals(),该方法还可以评估对的以下调用True: self.assertAlmostEqual_generic([x, x, x], [y, y, y])。 self.assertAlmostEqual_generic({1: x, 2: x, 3: x}, {1: y, 2: y, 3: y})。 self.assertAlmostEqual_generic([(x,x)], [(y,y)])。 有这种方法还是我必须自己实现? 说明: assertAlmostEquals()有一个名为的可选参数,places并且通过计算四舍五入到十进制数的差来比较数字places。默认情况下places=7,因此self.assertAlmostEqual(0.5, 0.4)为False,而self.assertAlmostEqual(0.12345678, 0.12345679)为True。我的投机assertAlmostEqual_generic()应该具有相同的功能。 如果两个列表具有完全相同的顺序几乎相等的数字,则认为它们几乎相等。正式地,for i in range(n): self.assertAlmostEqual(list1[i], list2[i])。 同样,如果两个集合可以转换为几乎相等的列表(通过为每个集合分配顺序),则认为它们几乎相等。 类似地,如果每个字典的键集几乎等于另一个字典的键集,则两个字典被认为几乎相等,并且对于每个这样的几乎相等的键对,都有一个相应的几乎相等的值。 总的来说:我认为两个集合如果相等就几乎相等,除了一些对应的float彼此几乎相等。换句话说,我真的想比较对象,但是在沿途比较浮点时精度(自定义)较低。

9
我可以在包装函数之前修补Python装饰器吗?
我有一个带有装饰器的函数,我正在Python Mock库的帮助下进行测试。我想mock.patch用一个仅调用函数的模拟“ bypass”装饰器代替真正的装饰器。 我不知道的是如何在真正的装饰器包装功能之前应用补丁。我在补丁目标上尝试了几种不同的变体,并对补丁和导入语句重新排序,但均未成功。有任何想法吗?

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.