我有一些引发PropertyChanged事件的代码,我希望能够unit testing事件正在提出正确。 引发事件的代码就像 public class MyClass : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } public string MyProperty { set { if (_myProperty != value) { _myProperty = value; NotifyPropertyChanged("MyProperty"); } } } } 我在我的unit testing中使用委托,从下面的代码中得到一个很好的绿色testing: [TestMethod] public void Test_ThatMyEventIsRaised() { string […]
摩卡力图默认testingtesting文件,如何指定另一个目录,例如server-test ?
我试图添加unit testing到我已经build立的ASP.NET MVC应用程序。 在我的unit testing中,我使用下面的代码: [TestMethod] public void IndexAction_Should_Return_View() { var controller = new MembershipController(); controller.SetFakeControllerContext("TestUser"); … } 通过以下帮助程序来模拟控制器上下文: public static class FakeControllerContext { public static HttpContextBase FakeHttpContext(string username) { var context = new Mock<HttpContextBase>(); context.SetupGet(ctx => ctx.Request.IsAuthenticated).Returns(!string.IsNullOrEmpty(username)); if (!string.IsNullOrEmpty(username)) context.SetupGet(ctx => ctx.User.Identity).Returns(FakeIdentity.CreateIdentity(username)); return context.Object; } public static void SetFakeControllerContext(this Controller controller, string username = […]
我有一个接口声明 Task DoSomethingAsync(); 我正在使用MoqFramework进行testing: [TestMethod()] public async Task MyAsyncTest() { Mock<ISomeInterface> mock = new Mock<ISomeInterface>(); mock.Setup(arg => arg.DoSomethingAsync()).Callback(() => { <my code here> }); … } 然后在我的testing中,我执行调用await DoSomethingAsync()的代码。 而testing只是在这一行失败。 我究竟做错了什么?
我对unit testing世界相当陌生,而且我刚刚决定在本周为现有的应用程序添加testing覆盖率。 这是一个巨大的任务,主要是因为要testing的类的数量,而且因为写testing对我来说都是新的。 我已经为一堆课程编写了testing,但是现在我想知道我是否正确地做了。 当我为一个方法编写testing时,我有第二次重写我已经写在方法本身的感觉。 我的testing似乎紧紧地绑定到方法上(testing所有的代码path,期望一些内部方法被多次调用,并带有某些参数),似乎如果我重构了方法,testing将会失败,即使该方法的最终行为没有改变。 这只是一种感觉,如前所述,我没有testing经验。 如果一些更有经验的testing人员可以给我如何编写一个现有的应用程序的伟大的testingbuild议,这将不胜感激。 编辑:我很想谢谢堆栈溢出,我有不到15分钟的大量input,回答了我刚才在线阅读的时间。
我有这样的testing: [TestCase("~/page/myaction")] public void Page_With_Custom_Action(string path) { // Arrange var pathData = new Mock<IPathData>(); var pageModel = new Mock<IPageModel>(); var repository = new Mock<IPageRepository>(); var mapper = new Mock<IControllerMapper>(); var container = new Mock<IContainer>(); container.Setup(x => x.GetInstance<IPageRepository>()).Returns(repository.Object); repository.Setup(x => x.GetPageByUrl<IPageModel>(path)).Returns(() => pageModel.Object); pathData.Setup(x => x.Action).Returns("myaction"); pathData.Setup(x => x.Controller).Returns("page"); var resolver = new DashboardPathResolver(pathData.Object, repository.Object, mapper.Object, […]
我试图开始在Pythonunit testing,我想知道是否有人可以解释doctest和unittest的优点和缺点。 你会用什么条件呢?
我有一个接口,需要一个Foo数组的方法: public interface IBar { void doStuff(Foo[] arr); } 我正在嘲笑这个接口使用Mockito,我想断言doStuff()被调用,但我不想validation什么parameter passing – “不关心”。 如何使用any() ,generics方法而不是anyObject()来编写以下代码? IBar bar = mock(IBar.class); … verify(bar).doStuff((Foo[]) anyObject());
我正在尝试写一些iOS逻辑testing对我的项目中使用我的podspec中的一些库function的类。 我正在使用Xcode提供的标准unit testing包(虽然不是应用程序testing,只是unit testing)。 例如,我使用魔法logging,并且在podspec中链接了该库。 它存在于我工作区的Pods项目中,并且在应用程序在模拟器或设备上运行时按预期工作。 当我试图链接到testing使用魔法logging的对象,但是,我得到一个链接器错误,指出它无法从魔法loggingfindselect器。 我已经尝试更新我的逻辑testing包中的HEADER_SEARCH_PATH,甚至将其编码到由CocoaPods创build的头文件目录中,但没有运气。 我可以针对没有使用CocoaPods库的类运行unit testing。 我是否在谈论这个错误? 我应该做一些其他的事情来让编译器看到CocoaPods库吗?
我为三个目的编写jUnittesting用例: 为了确保我的代码在全部(或大部分)input组合/值下满足所有必需的function。 为了确保我可以更改实现,并依靠JUnittesting用例告诉我,我所有的function仍然满足。 作为我的代码处理的所有用例的文档,并作为重构的规范 – 如果代码需要重写。 (重构代码,如果我的jUnittesting失败 – 你可能错过了一些用例)。 我不明白为什么或什么时候应该使用Mockito.verify() 。 当我看到verify()被调用时,它告诉我,我的jUnit正在意识到实现。 (因此改变我的实现将打破我的jUnits,即使我的function不受影响)。 我在找: 什么应该适当使用Mockito.verify()的指导方针? jUnits是否意识到或紧密结合被testing的类的实现从根本上说是正确的?