Questions tagged «unit-testing»

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

8
如何测试Spring Data存储库?
我想要UserRepository借助Spring Data创建的存储库(例如)。我是spring-data的新手(但不是spring),并且使用了本教程。我选择的用于处理数据库的技术是JPA 2.1和Hibernate。问题是我对如何为这样的存储库编写单元测试一无所知。 让我们以create()方法为例。当我首先进行测试时,应该为它编写一个单元测试-这就是我遇到的三个问题: 首先,我如何将an的模拟注入接口EntityManager的不存在的实现中UserRepository?Spring Data将基于此接口生成一个实现: public interface UserRepository extends CrudRepository<User, Long> {} 但是,我不知道如何强制它使用EntityManager模拟和其他模拟-如果我自己编写实现,则可能会有一个setter方法EntityManager,允许我将模拟用于单元测试。(对于实际的数据库连接性,我有一个JpaConfiguration类,用@Configuration和注释,该类以@EnableJpaRepositories编程方式定义了,等等的Bean DataSource,但是存储库应该易于测试,并且可以覆盖这些内容)。EntityManagerFactoryEntityManager 其次,我应该测试互动吗?我很难弄清楚应该调用EntityManager和的什么方法Query(类似于verify(entityManager).createNamedQuery(anyString()).getResultList();),因为编写实现的不是我。 第三,首先我应该对Spring-Data生成的方法进行单元测试吗?据我所知,第三方库代码不应该进行单元测试-只有开发人员自己编写的代码才应该进行单元测试。但是,如果这是真的,但它仍然带来的第一个问题回到场景:比方说,我有一对夫妇的自定义方法为我的仓库,为此,我会写的实现,我怎么注入我的嘲笑EntityManager,并Query进入决赛,产生仓库? 注:我将使用测试驱动我的仓库都集成和单元测试。对于我的集成测试,我使用的是HSQL内存数据库,而显然我没有使用数据库进行单元测试。 可能是第四个问题,在集成测试中测试正确的对象图创建和对象图检索是否正确(例如,我使用Hibernate定义了复杂的对象图)? 更新:今天我继续尝试模拟注入-我创建了一个静态内部类来允许模拟注入。 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @Transactional @TransactionConfiguration(defaultRollback = true) public class UserRepositoryTest { @Configuration @EnableJpaRepositories(basePackages = "com.anything.repository") static class TestConfiguration { @Bean public EntityManagerFactory entityManagerFactory() { return mock(EntityManagerFactory.class); } @Bean public EntityManager entityManager() …

5
如何编写单元测试?
我有一个Java类。如何进行 单元测试? 就我而言,我有class做一个二进制和。它需要两个byte[]数组,将它们求和,然后返回一个新的二进制数组。
135 java  unit-testing 


5
Mockito:存根返回带界通配符的类型的存根方法
考虑以下代码: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } 编译器抱怨该行试图对行为进行存根dummyMethod()。关于如何使用存根方法返回带界通配符的类型的任何指针?

22
C ++代码的单元测试-工具和方法论
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我正在开发一个已经开发了几年的大型c ++系统。为了提高现有代码的质量,我们参与了一个大型的长期重构项目。 您知道一个好的工具可以帮助我用C ++编写单元测试吗?也许类似于Junit或Nunit? 谁能在编写没有单元测试的模块的单元测试的方法上给出任何好的建议?


11
为什么要使用JUnit进行测试?
也许我的问题是新手,但是我无法真正理解在什么情况下使用 unit? 无论是编写简单的应用程序还是大型应用程序,我都使用System.out语句对其进行测试,这对我来说很容易。 如果仍然需要调用相同的方法,检查它们返回的内容,然后注释所有内容,那么为什么还要使用JUnit创建测试类,在项目中创建不必要的文件夹呢? 为什么不编写一个类并立即对其进行System.out测试却不创建Test-class? PS。我从未在刚刚学习的大型项目中工作过。 那么目的是什么?
131 java  unit-testing  junit  tdd 

6
断言未使用Mock调用函数/方法
我正在使用Mock库来测试我的应用程序,但是我想断言某些函数没有被调用。模拟文档谈论类似的方法mock.assert_called_with和mock.assert_called_once_with,但我没有找到像什么mock.assert_not_called或验证模拟相关的东西是不叫。 我可以使用类似以下的内容,尽管它看起来既不酷也不是pythonic: def test_something: # some actions with patch('something') as my_var: try: # args are not important. func should never be called in this test my_var.assert_called_with(some, args) except AssertionError: pass # this error being raised means it's ok # other stuff 任何想法如何做到这一点?

9
使用mocha和node.js对私有功能进行单元测试
我正在使用Mocha以便对为node.js编写的应用程序进行单元测试 我想知道是否可以对模块中未导出的功能进行单元测试。 例: 我在其中定义了很多功能 foobar.js function private_foobar1(){ ... } function private_foobar2(){ ... } 以及一些作为公共导出的功能: exports.public_foobar3 = function(){ ... } 测试用例的结构如下: describe("private_foobar1", function() { it("should do stuff", function(done) { var stuff = foobar.private_foobar1(filter); should(stuff).be.ok; should(stuff)..... 显然,这是行不通的,因为private_foobar1没有导出。 对私有方法进行单元测试的正确方法是什么?摩卡咖啡有内置的方法吗?


7
在模拟框架中进行模拟与间谍活动
在模拟框架中,您可以模拟对象或对其进行监视。两者之间有什么区别?何时/应该何时使用另一种? 综观的Mockito,例如,我看到使用被做过类似的事情间谍和嘲笑,但我不能确定两者之间的区别。

14
TDD和BDD之间的主要区别是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3个月前关闭。 改善这个问题 在过去的几年中,测试驱动开发一直是.NET社区中的热门话题。最近,我在ALT.NET社区中听到有关BDD的抱怨。它是什么?与TDD有何不同?
129 unit-testing  tdd  bdd 


13
如何在ASP.NET Core中使用ILogger进行单元测试
这是我的控制器: public class BlogController : Controller { private IDAO<Blog> _blogDAO; private readonly ILogger<BlogController> _logger; public BlogController(ILogger<BlogController> logger, IDAO<Blog> blogDAO) { this._blogDAO = blogDAO; this._logger = logger; } public IActionResult Index() { var blogs = this._blogDAO.GetMany(); this._logger.LogInformation("Index page say hello", new object[0]); return View(blogs); } } 如您所见,我有2个依赖项,a IDAO和aILogger 这是我的测试类,我使用xUnit进行测试,使用Moq创建模拟和存根,我可以DAO轻松进行模拟,但是由于ILogger我不知道要做什么,所以我只传递了null并注释掉了登录控制器的调用运行测试时。有什么方法可以测试,但仍然以某种方式保持记录器? public class …

7
未定义Angular返回模块中的测试服务
我试图在我的项目中运行默认的服务单元测试(取自GitHub上的Angular Seed项目),但是我一直收到错误消息“模块未定义”。 我已经读到它可能与所引用的JavaScript文件的顺序有关,但是我似乎无法使其正常工作,因此希望你们中的一个能够提供帮助。 我的测试配置如下所示: basePath ='../'; 文件= [ 'public / javascripts / lib / jquery-1.8.2.js', 'public / javascripts / lib / angular.js', 'public / javascripts / lib / angular.js ', 'public / app.js ”, “ public / controllers / .js”, “ public / directives.js”, “ public / filters.js”, “ public …

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.