SpecFlow + WatiN + nunit.framework を使用して、.net の BDD テストを構築します
HTML ページで次の機能を確認したい:
Scenario: Change user role from 'Admin' to 'User'
Given I have logged in
And I am on the 'Add new user' page
Then the 'Homepage' should not be visible
When I select 'Role' as 'User'
Then the 'Homepage' should be visible
これは、一部のプロパティがユーザー ロールに依存するシナリオです。管理者にはホームページがありませんが、ユーザーにはあります。そのため、ページにはこれを表示/非表示にするための適切な JavaScript があります。
更新:次の方法を作成しました:
[Then(@"'(.*)' (should|should not) be visible")]
public void ThenElementShouldBeVisible(string elementName, string should)
{
var element = WebBrowser.Current.Elements.First(Find.ByLabelText(elementName));
Assert.That(should == "should"
? element.Style.Display == "none"
: element.Style.Display != "none");
}
しかし、JavaScript が作業を終了した後、ブラウザ オブジェクトは要素のスタイルを更新しないように思えます。
要素が表示されているか、SpecFlow を使用していないかを確認する方法がわかりません。