Questions tagged [unit-testing]
Unit testing is a method by which individual units of source code are tested to determine if they are fit for use.
1,755
questions
58
votes
12
answers
6k
views
How to test the tests?
We test our code to make it more correct (actually, less likely to be incorrect). However, the tests are also code -- they can also contain errors. And if your tests are buggy, they hardly make your ...
6
votes
4
answers
4k
views
Does TDD formally use black box testing to supplement unit tests?
Unit tests are never perfect at capturing functionality, particularly in certain parts of an application (such as the GUI), so everyone needs some measure of black box testing. Does TDD have anything ...
9
votes
5
answers
15k
views
How to write my own unit test?
I am currently trying to write a unit test of my own. The unit test I am writing is mainly for linear algebra (I know there are great package out there but I want to use my own for my project). My ...
0
votes
1
answer
217
views
Why are sealed classes not allowed to be mocked?
Using Moq framework, it is not allowed to mock a class in C# which is sealed. Same goes for many other frameworks as well. But why is it not allowed?
0
votes
0
answers
50
views
Is using @Transactional together with @Test annotation on the same test method a good practice?
In my current Java project, there is such style of integration test:
@Test
@Transactional
public void testBusinessTransaction() throws Exception {
//...complicate set up code and execution code
...
1
vote
2
answers
173
views
Is it possible to prove mathematically that unit testing reduces test effort as compared to integration testing? [closed]
I took out the request for a paper, thank you for spending so much time on this.
hopefully this edit is better.
I use the word "complexity" meaning "cyclomatic complexity" so if ...
3
votes
1
answer
3k
views
How do sites like LeetCode & HackerRank test your code for correctness?
Not sure if this question belongs here, but I've always wondered how exactly sites like Leetcode & HackerRank test your code. Say you code in Java for a question like,
Find all the duplicates in ...
53
votes
10
answers
7k
views
How should I test "Glue Functions" without testing that "the code I wrote is the code I wrote"?
I usually write my code in a test driven style. I write tests as specifications and then my code. It's great and useful.
I always try to ignore implementation when testing and only test behaviour. I ...
1
vote
2
answers
753
views
Entity Framework and Domain Driven Design Testability
I'm using a DDD approach for the Domain classes. Although, I have a problem on my design, that I'm handling it now but didn't have a good idea to over tackle it.
My Architecture is the follow one:
- ...
1
vote
2
answers
69
views
Test-doubling a file path in Java/Groovy
I am trying to write a unit test for a helper method in my ApiRequestHandler which handles APIGatewayProxyRequestEvent . This class uses an EFS file path, which is where it writes files to. I have ...
16
votes
6
answers
8k
views
Should I Have One Interface Per Class For Unit Testing?
Should I define an interface for every public behavior class (excluding data classes)?
I've spent many hours searching and reading to find a clear answer. If I search "Do you define an interface ...
2
votes
3
answers
249
views
How do you decompose big object for testing?
I have a package that provides an object with quite a lot of features owned by it.
Let us say the object is an HTTPServer, and when the user initializes it by providing config and a request handler ...
-1
votes
1
answer
99
views
Alternatives to using mock libraries such as Mockito in unit testing
Typically, when writing unit tests I tend to need to stub out collaborators and also mock some behavior in one or more of the collaborating objects. Say if I am testing a Service that is using a Dao, ...
7
votes
6
answers
5k
views
Should //given //when and //then comments be included in unit tests?
I've joined a new team of great colleagues and a difference of opinion has come up concerning including //given //when and //then comment blocks in unit tests.
For example
public void ...
1
vote
2
answers
204
views
Best practices for unit testing when breaking down functions into smaller ones
Say we have a function of the form
def func(num: int) -> int:
num = num + 1
num = 2 * num
num = num**3
return num
and let us act like each line is a long computation so that we ...
2
votes
2
answers
144
views
Where to put interface files for mocking aka what are best practices for organizing interfaces in a C#/.NET Core project with NSubstitute, Moq etc.?
Question
I'm working on a C#/.NET Core project, and I'm looking for guidance on organizing interfaces, especially when it comes to using NSubstitute, Moq or other libraries for mocking, because there ...
2
votes
3
answers
275
views
Should Acceptance Criteria be mapped to unit tests?
My organisation is adapting a new SDLC process, and a part of this is to force engineers to map acceptance criteria (AC) to unit tests written for each user story in the pull request (PR).
To satisfy ...
0
votes
0
answers
48
views
How do you decide what is worth writing a unit test for [duplicate]
In an app I'm working in there's a service class(among others) which is used just to call methods on other classes. Recently I've had to work in that area and add another method that does what all the ...
1
vote
1
answer
97
views
How do I mock API responses with security in mind?
My team and I are beginning to mock our API responses in our iOS app so we don't have to worry about our backend being up when testing.
I have conditional compilation directives based on the ...
1
vote
4
answers
362
views
Is it worth unit testing hardcoded values? [closed]
I recently worked on a project where the team were writing lots of unit tests for hardcoded values, for example, unit tests that test the value of a string constant. The justification being that they ...
0
votes
1
answer
202
views
Should mocks used in unit tests represent entireties or subsets?
I was working on a unit test that has a mock object looking something like:
public class TestMock
{
static {
Doodad a = new Doodad(0);
Doodad b = new Doodad(1);
Doodad c = ...
141
votes
7
answers
61k
views
What should you test with unit tests?
I'm freshly out of college, and starting university somewhere next week. We've seen unit tests, but we kinda not used them much; and everyone talks about them, so I figured maybe I should do some.
...
2
votes
2
answers
539
views
Integration Testing Stripe Payments - stripe-mock or Stripe's test mode?
I'm building an automated test suite to integration/feature test my organization's Stripe implementation within a GitLab CI pipeline. We're running Laravel 8 and using phpunit for testing.
Within this ...
9
votes
5
answers
4k
views
Which comes first: CD/Trunk-based development or microservices?
My company* wants
to move from using long-running feature branching (~up to a few weeks) to continuous integration with trunk-based development, and
to break up our monolith into microservices.
We'...
1
vote
2
answers
114
views
When writing automated tests for a website relying heavily on a template language, how do I gain confidence while maintaining fast feedback?
I'm working on a website that, for all intents and purposes, functions as a Choose Your Own Adventure book rendered as a single page app (SPA). Starting at the left, this is the user experience:
Each ...
1
vote
3
answers
167
views
Isolate or Redundant Test?
I have lots of code like the following. An "Entity" type that has some numerical properties. To be able to reuse the arithmetic I write the arithmetic functions against an interface. I use ...
2
votes
3
answers
215
views
Should edge cases be part of one test, or each their own case?
I am writing tests TDD-style for a cryptography package containing encryption and decryption methods. I test my methods with various kinds of inputs, including multiline strings, mixed case, calling ...
1
vote
3
answers
186
views
How do you test whether schema changes will break services?
I maintain a relational database of sorts, and occasionally a feature request requires a schema change (eg. add a new column, etc...).
However, a number of "services" consume this data. It's ...
120
votes
19
answers
13k
views
What is the point of unit tests?
I've been a software developer for 20+ years, although it's been an unusual career. I've mostly worked on either legacy projects, or small standalone, non-public-facing apps and so only a couple of ...
50
votes
8
answers
12k
views
How do I really write tests without mocking/stubbing?
I have been using TDD when developing some of my side projects and have been loving it.
The issue, however, is that stubbing classes for unit tests is a pain and makes you afraid of refactoring.
I ...
10
votes
9
answers
7k
views
Is it bad practice to compare string representation on an object instead of its properties during unit tests?
Given a class as follows:
class IntList {
public:
IntList(std::vector<int> list) : m_list(list) {}
std::vector<int> list() { return m_list; }
std::string toString() {
...
0
votes
4
answers
401
views
Testing for exception thrown, unit or integration test?
In a test, asserting if a simple method throws an exception under a certain circumstance, is such a test considered a unit or integration test when the exception object thrown is from the standard ...
4
votes
1
answer
3k
views
Unit test express controllers?
I'm using meanjs for a project. It includes a yeoman generator with some express tests (model.test.js & routes.test.js)
The tests do exactly what they advertise. My question is though, should I ...
18
votes
5
answers
5k
views
TDD Mock call verification - is it an anti-pattern?
I've been doing TDD for a while now, I feel pretty good about it, I love my test suites and all. However I've noticed that lately I've been doing a lot of mock call verification. For example I'd have ...
531
votes
18
answers
469k
views
Is it OK to have multiple asserts in a single unit test?
In the comment to this great post, Roy Osherove mentioned the OAPT project that is designed to run each assert in a single test.
The following is written on the project's home page:
Proper unit ...
1
vote
3
answers
191
views
TDD - What to do when adding a new function on a dependency causes many previous tests to fail?
I was programming today and encountered something that just feels like I'm doing something wrong (maybe?). I've encountered this situation before, but I wanted to reach out and ask if there's a better ...
163
votes
13
answers
36k
views
Is there such a thing as having too many unit tests?
I have been tasked with writing unit tests for an existing application. After finishing my first file, I have 717 lines of test code for 419 lines of original code.
Is this ratio going to become ...
20
votes
9
answers
5k
views
How do you unit-test code using graph structures?
I am writing (recursive) code that is navigating a dependency graph looks for cycles or contradictions in the dependencies. However, I am not sure how to approach unit testing this. The problem is ...
17
votes
3
answers
989
views
How do you test a function whose sole purpose is to query an external API, but the API uses a complex query syntax?
The only real logic is in the query syntax for the external API. I don't want to test whether it queries the api, I want to test that it queries it in such a way that the correct data will be returned....
5
votes
3
answers
6k
views
Integration Testing: Testing Service to Service
I'm looking for some advice on testing strategies for service to service communication.
I have one service (service A) that makes a call to another service (B) - which is a rest API. Both services ...
2
votes
2
answers
384
views
Does the "Pyramid of tests" contradict the idea of tests focusing on behaviour?
I am talking about these two testing strategies :
Have a pyramid of tests (with many more unit tests than high-level tests), because high level tests are harder to maintain and slower (see also : ...
2
votes
2
answers
216
views
Is it okay to use Dependency injection only because of unit testing?
I have a class that has dependencies that I know are not going to change.
class ConversationFinder
{
public function __construct(
protected Conversation $conversationDbFinder = new ...
2
votes
3
answers
311
views
Unit testing code which does not establish correlation between input and output
In most descriptions of unit testing as a methodology there's an idea of unit tests being as independent of implementation as possible. This is easy to understand and implement in cases when code does ...
12
votes
5
answers
13k
views
How Should I Unit Test A Data Transfer Object?
Consider the following sample C# Data Transfer Object (DTO):
public class MailingAddress
{
public string StreetAddress {get; set;}
public string City {get; set;}
public string ...
7
votes
5
answers
677
views
How to initiate unit testing when you're the grunt?
I am the newest programmer on a very small team of 6 developers, 3 of which are offsite. By "newest" I mean both in years of experience (drastically) and familiarity with the code. I've been ...
-1
votes
3
answers
113
views
Code Coverage and Unit Tests nomenclature [closed]
About tests:
I have the following view on nomenclature:
Unit tests are the kind of testes where you have a function
ExtractBacon, where there is a function with an entry parameter Pig
and a return of ...
24
votes
4
answers
22k
views
How to use unit tests when using BDD?
I am trying to understand BDD. I've read some articles and as I understood BDD is "the next step" from TDD.
I say that because I find both to be very similar, and as I could read in this ...
60
votes
5
answers
35k
views
What are the design principles that promote testable code? (designing testable code vs driving design through tests)
Most of the projects that I work on consider development and unit testing in isolation which makes writing unit tests at a later instance a nightmare. My objective is to keep testing in mind during ...
2
votes
3
answers
239
views
Method that returns an object is it adequate for TDD?
Let's suppose I want to follow TDD (Test driven development) and I want to implement a class that is supposed to return a considerable object.
It starts to get really complex in my opinion and doesn't ...
142
votes
12
answers
13k
views
TDD vs. Productivity
In my current project (a game, in C++), I decided that I would use Test Driven Development 100% during development.
In terms of code quality, this has been great. My code has never been so well ...