Initial impression (on behalf of Ben)

Coordinator
Feb 12, 2008 at 5:08 AM
Hello,

I've just been playing around with Project White, happy to see it has been released. I had started to write my own framework which is/was very similar in its approach (take a running exe and perform applications against it using reflection). But if I can take yours and run with it, even better.

I would really like to know more about the project and have a few questions/comments. Hope they make sense :)

1) Are you planning on maintaining this and supporting it or is it more of a POC? Can I tell everyone that we should start using this at work tomorrow?

2) I would prefer it if the namespaces where White.Core.... would make the code more readable.

3) When checking if a window is displayed, it would be nice if you followed the WinForms approach
For example, this wasn't the first property I went to. I expected you to use WindowState
Assert.IsTrue(window.DisplayState == DisplayState.Restored);

4) Same with button.Click(), I expected PerformClick().

5) In the quick POC I created, I had a button which throw an unhandled exception. In my test, the only way to know that the expection was thrown was because my test failed (the label didn't update). It would have been nice if you could hook into .Net, catch this exception and report it back to the unit testing framework?

6) I was surprised to see a MessageBox as a Window and not a MessageBox object?

Window messageBox = window.MessageBox(""); //Object MessageBox ?
Coordinator
Feb 12, 2008 at 5:09 AM
1) Are you planning on maintaining this and supporting it or is it more of a POC? Can I tell everyone that we should start using this at work tomorrow?

I am planning to maintain it and add lot more tool/framework support to it. Should be up on the site pretty soon.


2) I would prefer it if the namespaces where White.Core.... would make the code more readable.

I absolutely agree with you here, I should have thought about it. Any new dll would have this for this one I am not sure whether I should do this, considering it has been released and there are projects (there were some early adopters in TW) using it. I guess I would have to live with this problem.


3) When checking if a window is displayed, it would be nice if you followed the WinForms approach
For example, this wasn't the first property I went to. I expected you to use WindowState
Assert.IsTrue(window.DisplayState == DisplayState.Restored);
4) Same with button.Click(), I expected PerformClick().

Since white is supposed to work with SWT, WinForm, WPF and Win32, I didnt want white to seem like WinForm. But I completely understand because I have worked on WinForm more than any other frameworks I had display state same as winform's display state.


5) In the quick POC I created, I had a button which throw an unhandled exception. In my test, the only way to know that the expection was thrown was because my test failed (the label didn't update). It would have been nice if you could hook into .Net, catch this exception and report it back to the unit testing framework?

Can you send me the stack trace, because I couldn't understand completely what you meant here.


6) I was surprised to see a MessageBox as a Window and not a MessageBox object?
Window messageBox = window.MessageBox(""); //Object MessageBox ?

I was inclining towards not having MessageBox method on window and just have ModalWindow. Essentially MessageBox is just another window with restricted set of controls TextBox, Label, Title and Buttons. I would reserve my judgment on this and if I feel there are enough people find it confusing I would make MessageBox a specialized window. (Thanks for your suggestion)