这种测试应该在集成测试中完成,而不是单元测试。您不想在每次运行其他测试时运行该程序,只有在您推入产品之前进行运行,才能在Jenkins或appveyor等持续集成系统中运行。您可以使用诸如Selenium Webdriver之类的工具来打开浏览器(如Chrome),并验证最终结果是否包含您希望的文本。
我建议你看看page pattern它真的帮了我们。
这里有一个样品的测试可能是什么样子,请注意,我们有很多帮助,使测试干净,容易阅读/维护:
[Test]
public void CreateViewAndEditShouldWork()
{
S.OpenWithCI();
var loginPage = new LoginPage(S);
var centerListPage = loginPage
.LoginValidUser("username", "password")
.MenuClickCenterAndRoomLink();
var centerPage = centerListPage.ClickCreateLink();
//Create
centerPage.Submit();
Assert.That(centerPage.Error("Name"), Is.StringContaining(Strings.Error_Required));
Assert.That(centerPage.Error("EnglishName"), Is.StringContaining(Strings.Error_Required));
centerPage.Name = "Saguenay";
centerPage.EnglishName = "Sag";
centerPage.Address = "2089 blv Talbot";
centerPage.DivisionAfiSelected = true;
centerPage.Submit();
centerListPage.ExpectSuccessNotice(Strings.CenterCreatedSuccessfully);
//View
var centerDetailsPage = centerListPage.ClickDetailsLink("Saguenay");
Assert.That(centerDetailsPage.Title, Is.StringContaining("SAGUENAY"));
Assert.That(centerDetailsPage.Details, Is.StringContaining("Inactive"));
Assert.That(centerDetailsPage.Details, Is.StringContaining("2089 blv Talbot"));
//Edit
centerPage = centerDetailsPage.ClickEdit();
centerPage.Name = "Chicoutimi";
centerPage.Submit();
centerListPage.ExpectSuccessNotice(Strings.CenterUpdatedSuccessfully);
}
希望它能帮助!
好信息!我对测试很陌生(除了运行和手动尝试),但我将不得不对集成测试进行一些研究。谢谢! – bradlis7