I'm trying to figure out how to Unit Test a login and I'm wondering if testing the login stage would be Unit Testing or Integration Testing?
I've searched to see if there is an example or to see if it is explained but I'm unable to find an answer.
The login stage is just a simple Email and Password to log in with.
Testing a single login component would be a unit test. Access to any directory or data store should be mocked.
If your test includes a page, a database or directory, or anything else than a single component it's an integration test.
Related
I have a ML.NET project deployed as a web api like this - https://learn.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/serve-model-web-api-ml-net
How do I mock the PredictionEnginePool, MLContext or the PredictionEngine in xUnit or any unit test framework?
Have you looked at the tests for ML.NET? MLContext is shown in those examples.
https://github.com/dotnet/machinelearning/tree/master/test
PredictionEnginePool (I don't believe is shown), but it is not a special construct that can't be tested. I would test the FileLoader and being able to test from remote locations if you have to.
I am having an Angular2+ application.
I have done some unit testing with Karma-Jasmine. But my assumption is that this is only for dev enviroment(pre production).
I am looking for a testing framework through which the "dist" folder build can be verified(components, web services, etc...)? so that once the build is taken, some script that do login, should able to verify the response object for login service etc...
Sounds like you are asking how to do end-to-end testing to your application in addition to unit tests. In that case Selenium and more modern Cypress are what you are looking for.
I'm currently following this guide on unit testing .Unit testing in Angular
I went to the "Test environment setup files" and there is a link to a page that should explain how to configure and bootstrap files for unit testing but I get a 404 when I click on it. Also, on the same page it says :"The deep details of these files and how to reconfigure them for your needs is a topic beyond the scope of this guide ." So where can I find details about how to setup files for unit testing? I've tried using the sample files they had but I'm not sure how to tailor them to my needs.
If you use angular-cli, karma and protractor are setup already for unit and e2e testing. It is very easy to create a new project with angular-cli and start unit test (no setup required).
I'm attempting to learn AngularJS. One of the things that attracts me is its claim of separation of concerns and unit testability. So it defeats me completely to understand why I should need to install Node.js, or any web server, to test (say) an AngularJS controller which does no DOM manipulation or call out to any web services.
Can anyone give me a definitive bare-minimum list of what is required to unit test AngularJS code?
I'm going assume that you understand the difference between end-to-end testing and unit testing in Angular, so you're only asking about what it takes to do unit testing, right?
Basically you're going to need pretty much everything that comes with the seed project. The seed project uses Karma as the test runner to execute the javascript that you've written. Step 02 of the AngularJS Tutorial (found here) walks through writing some simple tests and executing them using Karma. Everything required to do that comes with the seed-project.
Those required things are:
An angularjs app
Node.js (installed)
Karma
Some jasmine-style unit tests
If you don't want to use the seed project, you can use Step 02 of the tutorial as a spring board and just follow the Karma docs to download and install Karma and get it running.
I hope that helps.
My web app is a Google OpenID consumer (with Attribute Exchange and OAuth Extension) and I need to write some unit test for it [edit: to test the unit that is responsible to interact with google].
The problem is that default OpenID login procedure needs user interaction (entering user/pass) which is not possible in unit test.
Do you have any idea how can I solve this problem and unit test my OpenID consumer app?
(I prefer not to run my own OpenID provider.)
You need to use a remote controlled browser for this. Selenium was made for this use case.
(indeed they are called functional tests then).
Search on Google for the best way to integrate selenium tests into your web framework.
If I understand you want to test your all application and not just "unit test" it.
The actual test framework depends on the technology your application is using. For example there are many UI and web automation tools that can do what you want.
You should also unit test your core functionality or at least write several integration tests that work against an actual Openid provider but instead of running the entire application just test the functionality of the class (if you're using language that has classes) to make sure it can get the b.
I would also write a couple of unit tests that call a fake provider to test how your code behaves in case of error, connection problems and plain vanilla responses.