Bird
Raised Fist0
Cypresstesting~20 mins

Reading file contents in Cypress - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
File Reading Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of reading a JSON file with Cypress?
Given the following Cypress test code that reads a JSON file and logs a property, what will be printed in the test runner console?
Cypress
cy.readFile('cypress/fixtures/user.json').then((user) => {
  cy.log(user.name)
})

// Assume user.json content: {"name": "Alice", "age": 30}
A{name: "Alice", age: 30}
Buser.name
Cundefined
DAlice
Attempts:
2 left
💡 Hint
cy.readFile reads the file and parses JSON automatically.
❓ assertion
intermediate
2:00remaining
Which assertion correctly verifies file content in Cypress?
You want to check that the file 'data.txt' contains the exact text 'Hello World'. Which assertion is correct?
Cypress
cy.readFile('data.txt').should( /* assertion here */ )
Ahave.text('Hello World')
Bcontain('Hello World')
Cequal('Hello World')
Dinclude.text('Hello World')
Attempts:
2 left
💡 Hint
Use the assertion that checks exact equality of strings.
🔧 Debug
advanced
2:00remaining
Why does this Cypress test fail to read the file?
Consider this test code: cy.readFile('nonexistent.json').then((data) => { cy.log(data.value) }) Why does this test fail?
Cypress
cy.readFile('nonexistent.json').then((data) => {
  cy.log(data.value)
})
AThe file 'nonexistent.json' does not exist, causing an error.
Bcy.log cannot log properties of objects.
CThe file path is relative to the wrong folder.
DThe .then callback is missing a return statement.
Attempts:
2 left
💡 Hint
Check if the file path is correct and file exists.
❓ framework
advanced
2:00remaining
How to read a file and assert JSON property asynchronously in Cypress?
Which code snippet correctly reads 'config.json' and asserts that the 'enabled' property is true?
Acy.readFile('config.json').should('have.property', 'enabled', true)
Bcy.readFile('config.json').then((config) => { expect(config.enabled).to.be.true })
Ccy.readFile('config.json').should((config) => { expect(config.enabled).to.be.true })
Dcy.readFile('config.json').then((config) => { assert(config.enabled === true) })
Attempts:
2 left
💡 Hint
Use Cypress built-in assertions for properties.
🧠 Conceptual
expert
2:00remaining
What is the best practice for reading large files in Cypress tests?
When reading a very large file in Cypress tests, what is the best approach to avoid slowing down tests or causing memory issues?
AAvoid reading files; instead, mock file content with fixtures.
BSplit the file into smaller chunks outside Cypress and read only needed parts during tests.
CUse cy.readFile with encoding 'utf16' to reduce memory usage.
DRead the entire file with cy.readFile and process it all at once.
Attempts:
2 left
💡 Hint
Think about test speed and memory when handling large data.

Practice

(1/5)
1. What is the primary purpose of cy.readFile() in Cypress testing?
easy
A. To read the contents of a file during a test
B. To write data to a file during a test
C. To delete a file before running tests
D. To upload a file to the server

Solution

  1. Step 1: Understand the function name

    cy.readFile() suggests reading a file, not writing or deleting.
  2. Step 2: Recall Cypress documentation

    This command reads file contents so tests can verify data inside files.
  3. Final Answer:

    To read the contents of a file during a test -> Option A
  4. Quick Check:

    cy.readFile() reads file contents [OK]
Hint: Remember: readFile reads, writeFile writes [OK]
Common Mistakes:
  • Confusing readFile with writeFile
  • Thinking it uploads files
  • Assuming it deletes files
2. Which of the following is the correct syntax to read a JSON file named data.json using Cypress?
easy
A. cy.readFile('data.json', 'utf8')
B. cy.readFile('data.json').then((content) => { /* use content */ })
C. cy.readFile('data.json').catch((content) => { /* use content */ })
D. cy.readFile('data.json').write((content) => { /* use content */ })

Solution

  1. Step 1: Identify correct method chaining

    Using then() after cy.readFile() is correct to access file content.
  2. Step 2: Check other options

    catch() is for errors, not normal reading; write() is invalid here; passing 'utf8' alone is incomplete.
  3. Final Answer:

    cy.readFile('data.json').then((content) => { /* use content */ }) -> Option B
  4. Quick Check:

    Use then() to handle readFile content [OK]
Hint: Use then() to access file content after readFile [OK]
Common Mistakes:
  • Using catch() instead of then()
  • Trying to write after readFile
  • Passing encoding without then()
3. Given the code below, what will be logged to the console if example.txt contains the text "Hello Cypress"?
cy.readFile('example.txt').then((text) => {
  console.log(text);
});
medium
A. Empty string
B. undefined
C. An error because readFile needs JSON
D. "Hello Cypress"

Solution

  1. Step 1: Understand readFile behavior

    cy.readFile() reads file content as text by default if file is plain text.
  2. Step 2: Check the file content

    The file contains "Hello Cypress", so the callback receives this string and logs it.
  3. Final Answer:

    "Hello Cypress" -> Option D
  4. Quick Check:

    readFile logs file text content [OK]
Hint: readFile returns file content as string for text files [OK]
Common Mistakes:
  • Assuming readFile only works with JSON
  • Expecting undefined instead of content
  • Thinking it throws error for text files
4. Identify the error in the following Cypress code snippet that tries to read a file and assert its content:
cy.readFile('config.json').then((data) => {
  expect(data).to.equal('config');
});
medium
A. Incorrect file path syntax
B. Missing catch() to handle errors
C. Using to.equal() instead of to.deep.equal() for object comparison
D. readFile cannot be used with JSON files

Solution

  1. Step 1: Understand data type returned by readFile

    Reading a JSON file returns an object, not a string.
  2. Step 2: Check assertion method

    to.equal() checks strict equality, which fails for objects; to.deep.equal() is needed for object content comparison.
  3. Final Answer:

    Using to.equal() instead of to.deep.equal() for object comparison -> Option C
  4. Quick Check:

    Use deep.equal for object assertions [OK]
Hint: Use deep.equal for objects, equal for primitives [OK]
Common Mistakes:
  • Using to.equal() for objects
  • Ignoring error handling
  • Assuming readFile can't read JSON
5. You want to verify that a text file notes.txt contains the word "important" anywhere in its content using Cypress. Which code snippet correctly performs this check?
hard
A. cy.readFile('notes.txt').then((text) => { expect(text.includes('important')).to.be.true; })
B. cy.readFile('notes.txt').should('contain', 'important')
C. cy.readFile('notes.txt').then((text) => { expect(text).to.equal('important'); })
D. cy.readFile('notes.txt').then((text) => { expect(text).to.have.property('important'); })

Solution

  1. Step 1: Understand file content check

    We want to check if the word "important" is anywhere in the text, so we need to check substring presence.
  2. Step 2: Evaluate options

    cy.readFile('notes.txt').then((text) => { expect(text.includes('important')).to.be.true; }) uses includes() and asserts true, which is correct. cy.readFile('notes.txt').should('contain', 'important') is invalid because should('contain') is for DOM elements, not file content. cy.readFile('notes.txt').then((text) => { expect(text).to.equal('important'); }) checks exact equality, which is wrong. cy.readFile('notes.txt').then((text) => { expect(text).to.have.property('important'); }) wrongly uses to.have.property() on a string.
  3. Final Answer:

    cy.readFile('notes.txt').then((text) => { expect(text.includes('important')).to.be.true; }) -> Option A
  4. Quick Check:

    Use includes() to check substring in file text [OK]
Hint: Use includes() inside then() to check text content [OK]
Common Mistakes:
  • Using should('contain') on file content
  • Checking exact equality instead of substring
  • Using property assertion on string
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard