Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8403327
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T22:18:50+00:00 2026-06-09T22:18:50+00:00

Let’s say this is my code: public void render(){ GL11.glClearColor(0, 0, 1, 1); GL11.glClear(GL11.GL_COLOR_BUFFER_BIT

  • 0

Let’s say this is my code:

public void render(){
    GL11.glClearColor(0, 0, 1, 1);
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
    GL11.glColor3f(.5f, .5f, 1.0f);
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glVertex3f(0,0,0);
        GL11.glVertex3f(50,0,0);
        GL11.glVertex3f(50,50,0);
        GL11.glVertex3f(0,50,0);
    GL11.glEnd();
}

How can I write a unit test to make sure the square was drawn where it should be and at the right color? Should I also be testing things like, the screen gets cleared on each frame? I was thinking that I’d abstract the openGL code away from the my square code. In other words, I’d create a class that creates “vectors” and then its render function would draw to screen and I wouldn’t test that. However, you SHOULD test every public function. Sooo I guess it comes back to: well how can I tell what was drawn on screen in openGL?

Also, now that I think about it, I shouldn’t really be running my app every time I run the test, which presents another level of complexity potentially…

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T22:18:52+00:00Added an answer on June 9, 2026 at 10:18 pm

    Absolutely, you’ll need to wrap the GL11 library in another adapter, then mock that adapter out. Then you can show that your class passes the correct coordinates, and the right colour. (Or you could use PowerMock, but honestly, I like Mockito and mocking interfaces better).

    If you use a vector abstraction, you could do the same thing to test that too. The wrapper to GL11 should be small enough and simple enough that you can verify it’s correct just by inspection, as you won’t be able to unit-test that without actually drawing on a screen. I would only create that additional abstraction if you use it elsewhere.

    As far as showing that the class is “correct”, and draws the square in the “right” place, Matt’s right in that testing rendering behaviour is difficult, and testing aesthetics IMO should only be done manually. With that in mind, if you don’t create the vector abstraction you could just check that the distance between coordinates is the same, so that it’s a “square”, then call it a day, as this helps you keep the test flexible and easily change the size and color of the square if you need to.

    These are just options. Automated testing is no substitute for manually testing at least once. If the behavior you’re looking at is something you’d always check manually each time you change it anyway, and it’s abstracted away from anything that might affect the behavior (so nothing can create regression bugs), don’t worry so much about creating a unit test for it and just verify it manually.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Let's say I have this code: <p dataname=description> Hello this is a description. <a
Let's say we have this code: <form action='' method='POST' enctype='multipart/form-data'> <input type='file' name='userFile'><br> <input
Let's say I have a sortable list like this: $(.song-list).sortable({ handle : '.pos_handle', axis
Let's say I have a string like this: var str = /abcd/efgh/ijkl/xxx-1/xxx-2; How do
Let's say on a page I have alot of this repeated: <div class=entry> <h4>Magic:</h4>
Let's say I can call a method like this: core::get() . What is the
Let's say I have a text file composed like this ##### typeofthread1 ##### typeofthread2
Let's say I have the following classes : public class MyProductCode { private String
Let say I've this URL: http://example.com/image-title/987654/ I want to insert download to the part
Let's say I have table with column 'URL' whrere I store urls like this

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.