2022-10-28-TIL

Today I Learned

Test Doubles(Fakes, Mocks and Stubs), Fixture

  • https://www.javatpoint.com/mock-vs-stub-vs-spy
  • https://spin.atomicobject.com/2021/06/28/mocks-stubs-or-spies/
  • https://blog.pragmatists.com/test-doubles-fakes-mocks-and-stubs-1a7491dfa3da
  • https://jesusvalerareales.medium.com/testing-with-test-doubles-7c3abb9eb3f2
  • https://www.educative.io/answers/what-is-faking-vs-mocking-vs-stubbing
  • https://medium.com/swlh/improve-your-tests-with-fixtures-37b5120ecb71
  • https://codify.tistory.com/116
  • https://www.javaguides.net/2018/07/junit-4-test-fixtures-examples.html
  • https://automationintesting.com/java/junit/lessons/whataretestfixtures.html
  • https://junit.org/junit4/cookbook.html
  • https://www.softwaretestinghelp.com/junit-test-fixture-with-examples/

Mockito

  • https://reflectoring.io/clean-unit-tests-with-mockito/
  • https://blog.logrocket.com/unit-testing-kotlin-projects-with-mockk-vs-mockito/

MySQL TRIM()

  • https://www.w3resource.com/mysql/string-functions/mysql-trim-function.php

Java toCharArray() vs charAt(i)

toCharArray() 에서 결과를 반환하는 데 O(n) 시간이 걸린다. 여기서 n은 문자열의 길이다. 또한 원래 문자열의 방어적인 복사본을 생성하기 때문에 O(n) 공간을 차지한다.

charAt() 에서는 랜덤 액세스이므로 결과를 반환하는 데 O(1) 시간이 걸린다. 또한 특정 위치의 char 값만 반환하므로 O(1) 공간이 필요하다. 방어용 사본은 사용되지 않는다.

사용할 방법을 선택하기 위해 구현하는 알고리즘에 따라 다르다. 위의 분석 후에 toCharArray() 를 사용할 때 약간의 비용이 든다는 것이 분명해야 한다. 방법을 선택할 때 특히 알고리즘이 새 문자열을 반환하지 않고 문자열만 반복해야 하는 경우 잘 생각해야한다. 프로그래밍하는 데 드는 시간은 줄어들지만 실행하는 데 더 많은 시간과 공간이 소요될 수 있습니다.

  • https://wenheqi.medium.com/use-tochararray-wisely-772175198a54
  • https://stackoverflow.com/questions/22445104/should-i-use-charat-or-tochararray